Possible dereference of NULL pointer at `ext/standard/var.c`
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 74/100
Rechercherichtung
Beginne in ext/standard/var.c bei etwa den Zeilen 1010-1016 und prüfe die Garantien, die ZEND_HASH_FOREACH_KEY_VAL_IND für key vor dem Aufruf von zend_string_equals_literal bietet. Bestätige, ob key an dieser Stelle NULL sein kann, und stelle sicher, dass die fertiggestellte Änderung die mögliche Dereferenzierung verhindert, ohne die bestehende Behandlung unvollständiger Klassen zu verändern.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Description
At ext/standard/var.c:1010 macros ZEND_HASH_FOREACH_KEY_VAL_IND initiates a cycle, in every iteration of which pointer key is provided.
At ext/standard/var.c:1016 there is a check if(!key), which implies, that key pointer is not guaranteed to not be a NULL. However, right before this check, at ext/standard/var.c:1011 we dereference key pointer by calling zend_string_equals_literal(key, MAGIC_MEMBER) without any additional check.
Possible solution
Adjusting a condition may prevent any unexpected behaviors:
if (key && incomplete_class && zend_string_equals_literal(key, MAGIC_MEMBER)) {
incomplete_class = false;
continue;
}
Found by Linux Verification Center (https://portal.linuxtesting.ru/) using SVACE.
Author D. Meliksetyan.
PHP Version
8.3.31 (found with static analysis)
Operating System
N/A
- Vorherrschende Sprache
- C
- Sterne
- 40.4k
- Forks
- 8.2k
- Ø Merge
- 2 T. 1 Std.
- Gemergte PRs (30 T.)
- 153
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus php/php-src
-
Bug Status: Needs Triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
Variant analysis: 1 unfixed sibling safety gap in php-srcEvtl. vergeben @kamil-tekiela hat das vor 8 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
php/php-src#23958 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
sapi_lsapi_ub_write does not return bytes written in lsapi modeEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. OffenBug Status: Needs Triage
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
Maintainer antworten meist innerhalb von 1 Tag
-
Bug Status: Needs Triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Use of PIDFile= in php-fpm.serviceEvtl. vergeben @CodedByManish hat das vor 25 Tagen übernommen. OffenBug SAPI: fpm Status: Needs Triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
php/php-src#21740 · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
Discover carries headerEdges that nothing reads since #1914 moved E0507/E0517 to the compiler graphOffentech-debt
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag
-
2个显示的问题Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
coolsnowwolf/lede#14209 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
polhenarejos/pico-hsm#147 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
OpenPrinting/cups#1746 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Status: Opened
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag