Der OSTIF (Open Source Technology Improvement Fund), gegründet zur Stärkung der Sicherheit offener Projekte, hat die Ergebnisse des Sicherheitsaudits der Boost-Bibliotheken veröffentlicht, die in vielen Projekten in der Programmiersprache C++ verwendet werden. Das Audit, das im Auftrag von OSTIF und Amazon Web Services von der italienischen Firma Shielder durchgeführt wurde, identifizierte 7 Probleme, von denen eines als mittelgefährlich und vier als gering gefährlich eingestuft wurden; zwei Probleme wurden als Informationshinweise veröffentlicht.
Die im Audit untersuchten Bibliotheken:
- Boost.Beast
- Boost.DLL
- Boost.Date_Time
- Boost.Filesystem
- Boost.GIL
- Boost.Graph
- Boost.JSON
- Boost.Program_Options
- Boost.Regex
- Boost.String_Algo
- Boost.URL
- Boost.UUID
Festgestellte Probleme:
- Eine Schwachstelle in Boost.Beast, die die Einfügung von Carriage Return und Line Feed (CRLF) in HTTP-Header zulässt (kann zum Trennen von Headern verwendet werden). Dieses Problem wurde als mittelgefährlich eingestuft.
- Stacküberlauf in der Boost.Regex-Bibliothek bei rekursiver Ausführung von Operationen mit mehreren end_line-Elementen im regulären Ausdruck.
- Stacküberlauf in der Boost.Regex-Bibliothek bei rekursiver Ausführung von Operationen mit mehreren Capture-Gruppen und Zusammenführungen.
- Stacküberlauf in der Boost.Regex-Bibliothek bei rekursiver Ausführung von Operationen mit mehreren offenen runden Klammern in der Formatierungszeichenfolge.
- Stacküberlauf in der Boost.Graph-Bibliothek bei rekursiver Ausführung von Operationen mit mehreren verschachtelten Graphen.
- Assert-Auslösung in der Funktion breadth_first_search der Boost.Graph-Bibliothek.
- Nicht abgefangene Ausnahmen in Boost.DLL.
Basierend auf den Informationen aus dem Audit hat das Entwicklerteam von Boost bereits 4 Probleme behoben und 15 Verbesserungen zur Erweiterung der Codeabdeckung und Funktionen bei Fuzzing-Tests eingeführt. Das Problem mit der Header-Trennung in Boost.Beast ist noch nicht behoben, und die Informationshinweise wurden noch nicht berücksichtigt.
Quelle: opennet.ru
