Mehrere Schwachstellen in Skriptsprache Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Oder auch hier: http://bugs.python.org/issue2620 , da gibts sogar Beispielskripte
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Find den Begriff "Schwachstelle" für'n Int-Overflow jetzt'n bisschen... Übertrieben, oder? Oder seh ich das falsch...
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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten