php / php/php-src

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

Ouverte
#9,951 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Extension: opcache Extension: shmop Extension: sysvshm Feature Status: Needs Triage
Langage dominant
C
Étoiles
40.4k
Forks
8.2k
Merge moyen
2 j 13 h
PR mergées (30 j)
96

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par lire ext/opcache/shared_alloc_shm.c à l’emplacement indiqué par le lien, puis examinez l’implémentation de ext/shmop et le répertoire Zend/. Déterminez comment l’initialisation du module pourrait suivre les IDs réservés et comment shmop_open signale les erreurs natives. Le travail est terminé lorsque les régions de opcache et des autres extensions ne peuvent pas être accessibles accidentellement, et que le paramètre ini d’exclusion proposé a été pris en compte.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
c, php
Domaine
operating-systems, security
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.