php / php/php-src

Add a way to reserve shmop memory ids and prevent shmop_open (e.g. opcache's region)

Offen
#9,951 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Extension: opcache Extension: shmop Extension: sysvshm Feature Status: Needs Triage
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.2k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description

https://github.com/php/php-src/blob/5a5037f223c887d09e3131b2124cd7ff5a50cca9/ext/opcache/shared_alloc_shm.c#L112

Related to https://github.com/php/php-src/issues/9944

Prevent accidentally or intentionally reading or writing to shared memory regions which would be used by opcache, or other extensions such as APCu

A possible approach:

  1. Add a helper method in Zend/ directory to track ids used during module initialization
  2. Make the ext/shmop extension check if those ids were already used and treat it like a native error code for https://php.net/shmop_open
  3. Add an ini setting to disable this protection, in case userland debuggers/visualizers have valid use cases for this

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, ext/opcache/shared_alloc_shm.c an der verlinkten Stelle zu lesen, und untersuche anschließend die Implementierung von ext/shmop sowie das Verzeichnis Zend/. Ermittle, wie die Modulinitialisierung reservierte IDs nachverfolgen könnte und wie shmop_open native Fehler meldet. Als erledigt gilt die Aufgabe, wenn auf opcache- und andere Erweiterungsbereiche nicht versehentlich zugegriffen werden kann und die vorgeschlagene opt-out-ini-Einstellung berücksichtigt wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, php
Bereich
operating-systems, security
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.