Seite 1 von 1

Mehrere Schwachstellen in Skriptsprache Python

Verfasst: Dienstag 5. August 2008, 10:50
von jens
http://www.heise.de/security/Mehrere-Sc ... ung/113801

Hm. Wie kann man das testen? So jedenfalls nicht:

Code: Alles auswählen

import sys

print sys.version

print sys.maxint, type(sys.maxint)
test = int("%s" % (sys.maxint +1))
print test, type(test)
print "OK"
Ausgabe:
2.5.2 (r252:60911, Mar 27 2008, 17:57:18) [MSC v.1310 32 bit (Intel)]
2147483647 <type 'int'>
2147483648 <type 'long'>
OK
EDIT: Ah, das muß es sein:

Code: Alles auswählen

import sys

print sys.version

def test(size):
    try:
        s = u"FooBar".center(size)
    except MemoryError, err:
        print "MemoryError: '%s'" % err

test(sys.maxint-1)
print "OK 1"
test(sys.maxint)
print "OK 2"
Ausgabe:
2.5.2 (r252:60911, Mar 27 2008, 17:57:18) [MSC v.1310 32 bit (Intel)]
MemoryError: ''
OK 1
>Exit code: -1073741819
Weitere Beispiele könnte man aus den diffs hier raus lesen: http://svn.python.org/view?rev=65335&view=rev

Verfasst: Dienstag 5. August 2008, 11:14
von Darii
Oder auch hier: http://bugs.python.org/issue2620 , da gibts sogar Beispielskripte

Verfasst: Dienstag 5. August 2008, 12:12
von BlackVivi
Find den Begriff "Schwachstelle" für'n Int-Overflow jetzt'n bisschen... Übertrieben, oder? Oder seh ich das falsch...

Verfasst: Dienstag 5. August 2008, 15:02
von lunar
Der Overflow an sich ist keine Schwachstelle, aber das resultierende, ungültige Ergebnis führt dazu, dass sich die Anwendung anders verhält und somit eventuell Sicherheitslücken öffnet. Heise spricht von unzuverlässigen Ergebnissen des hashlib-Moduls durch einen Integer Overflow. Das ist eine Sicherheitslücke, weil es einem Angreifer aufgrund dieser falschen Ergebnisse mitunter gelingen könnten, eine Kollision zu finden. Sprich, er hätte einen Wert, der das gleiche Ergebnis liefert wie ein anderer Wert. Angesichts der Tatsache, dass Passwörter fast immer gehasht gespeichert werden, ist das eine durchaus bedenkliche Sache ...

Das ist jetzt nur ein Beispiel, ob die im Heise-Bericht erwähnten Fehler tatsächlich zu Kollisionen führen, weiß ich nicht.

Verfasst: Montag 11. August 2008, 12:39
von Leonidas
Man muss aber die Behandlung des Bugs recht positiv herausheben (jetzt fehlen aber noch die Point-Releases mit den Fixes so wie ich das sehe). Es gibt ja durchaus Projekte wo als erste Antwort "Not a bug" kommt.