Research collected from outside sources and what this site derives from them; every fact links to a saved copy of its source Research or story?

GRC · Risks · Stakeholders · Frameworks · The graph · From the network

GRC: the risks of php2shell, who carries them, and the standards that govern them

A register of every risk in this story, broken down until each piece has someone who can act on it, and assigned to every stakeholder who carries part of it. The registers are fractal: the PHP project, a hosting provider, a council, a board and a developer each have one, and each is the same register read at a different scale. Every risk is backed by claims already on this site, and joined, edge by edge, to the weakness behind it, the vulnerability, the part of the fix that addresses it, the code that changed, the stories that tell it, the roles that act on it, and the controls in GDPR, NIS2, the Cyber Resilience Act, DORA, the EU AI Act, ISO 27001, NIST and the rest.

34risks
10at the top
53stakeholders
10roles
14weaknesses
20frameworks
95controls mapped
914edges

Where the risks sit

Likelihood up, impact across; the number in each cell is the score, likelihood times impact. Click an id for the risk.

Likelihood / impact1 Minor2 Moderate3 Significant4 Major5 Severe
5 Happening5 10 15 R04-220 R02 R02-1 R03-2 R04 R04-125
4 Likely4 8 12 R04-3 R07 R08-2 R10-316 R01-6 R02-3 R05 R08-1 R0920 R01-3 R03 R08
3 Possible3 6 9 R02-212 R01-2 R03-3 R03-4 R06-2 R06-3 R10 R10-115 R01 R01-1 R01-4 R01-5 R03-1 R06 R06-1
2 Unlikely2 4 6 8 10 R10-2
1 Rare1 2 3 4 5

The ten risks at the top

Each breaks down into the narrower risks it is made of; the full register is on the risks page.

RiskRatingKindAssigned toControls
R02 The coordinated disclosure broke before the fix was ready20 criticalDisclosure processThe PHP security team owner, The finders source, Distributors and packagers source, Organisations running PHP bearer, Security lead and AppSec bearerISO/IEC 29147 and 30111 29147:coordination, NIS2 Art.12, NIST CSF 2.0 ID.RA-08, FIRST TLP 2.0 TLP:AMBER+STRICT
R03 Exploitation outpaces patching20 criticalSecurityOrganisations running PHP owner, Threat intelligence and detection informer, US: CISA and the NSA regulator, Security lead and AppSec treaterCISA KEV and BOD 22-01 KEV-entry, CISA KEV and BOD 22-01 BOD22-01, NIST CSF 2.0 DE.CM-01, NIST SP 800-53 SI-4 +3
R04 Services lost to precautionary shutdowns20 criticalOperationalGovernments and public services owner, People who need a service that went offline bearer, Agencies and CERTs source, Board and executives owner, Communications team treaterISO/IEC 27001 A.5.29, ISO/IEC 27001 A.5.30, NIS2 Art.21(2)(c), DORA Art.11 +2
R08 Frontier AI finds critical flaws faster than maintainers can fix them20 criticalStrategicOpenAI (Patch the Planet) owner, The finders treater, The PHP project bearer, Everyone with PHP in the path bearer, CISO bearerEU AI Act Art.55, NIST AI RMF GOVERN-6.1, NIST AI RMF MEASURE-2.7, ISO/IEC 42001 6.1.2
R05 A web application firewall taken for a patch16 highSecurityWAF vendors informer, Security lead and AppSec owner, Online shops and payments bearerPCI DSS 6.4.2, CIS Controls 13.10, NIST SP 800-53 SC-7, ISO/IEC 27001 A.8.20 +1
R09 Not knowing where PHP runs16 highOperationalCTO owner, Platform engineers and developers treater, Suppliers in the NCSC-NL inventory informerNIST CSF 2.0 ID.AM-02, NIST SP 800-53 CM-8, CIS Controls 16.4, DORA Art.8 +2
R01 Remote code execution on internet-facing PHP servers15 highSecurityOrganisations running PHP owner, People who use PHP services bearer, The PHP project treater, Hosting and cloud providers treater, Edge, WAF and detection vendors treater, Agencies and CERTs informerISO/IEC 27001 A.8.8, NIST CSF 2.0 ID.RA-01, NIST SP 800-53 SI-2, CIS Controls 7.7 +3
R06 A compromise becomes a reportable breach15 highComplianceOrganisations running PHP owner, Data protection officer owner, People whose data is held in PHP applications bearer, EU and member-state CERTs regulator, Board and executives ownerGDPR Art.32, GDPR Art.33, GDPR Art.34, NIS2 Art.23 +2
R07 Decisions made on numbers that measure something else12 highGovernanceThe press source, Wiz Research source, Board and executives owner, This newsroom treaterNIST CSF 2.0 GV.RM-01, ISO/IEC 27001 6.1.2, OWASP Top 10s LLM09:2025
R10 This newsroom's own agents are steered, leak or mislead12 highAI and agentsThe editor owner, The newsroom's agents treater, This site's readers bearerEU AI Act Art.50, NIST AI RMF MANAGE-2.4, ISO/IEC 42001 6.1.3, OWASP Top 10s LLM06:2025

From a risk to the code, the story and the role

The editor's test for this section: a path in the graph from every risk to the vulnerabilities, the code, the stories and the roles. The build walks it for every risk and the table below is the count; the gaps are listed by name, not hidden. A risk with no vulnerability is not a gap in itself: some risks here arise from how disclosure, regulation or this newsroom works, and their weaknesses point at the code in this repository that guards them instead.

How the registers work

No risk on this register is accepted. An acceptance is an act by the holder of a risk, for a stated interval, and nobody can accept on anyone else's behalf; this desk records risks and their holders, it does not accept for them. Until a holder accepts, funds or fixes, each risk stands as it is rated here.

LikelihoodImpact
1Rare: Not seen and needs conditions nobody has shownMinor: An inconvenience, absorbed without a decision
2Unlikely: Possible; no sign of it in the evidence yetModerate: Costs time or money; one team's problem
3Possible: Reported or attempted; not confirmed at scaleSignificant: A service degraded or an obligation triggered; a director decides
4Likely: Under way somewhere, by confirmed evidence, or the precedent says it will be within weeksMajor: A service down, a regulator involved, data at risk; the board decides
5Happening: Confirmed and under way nowSevere: Code execution or data loss at scale, or harm to people relying on the service
PartMeansEdge
OwnerAccountable for treating the risk: decides, funds, signs offowned_by / owns
BearerSuffers the consequence if it happens, whether or not it can actborne_by / bears
TreaterDoes the work that reduces it: patches, filters, detects, shipstreated_by / treats
SourceIts actions or omissions create or raise the risk, without intentraised_by / raises
InformerIts information changes how others see and rate the riskinformed_by / informs
RegulatorSets or enforces the obligation the risk triggersregulated_by / regulates

The data

Authored: data/grc.json (53 stakeholders, 14 weaknesses, 34 risks) and data/grc-frameworks.json (20 frameworks, 120 controls). Generated on every build: data/grc-graph.json, 442 nodes and 914 edges. The build refuses a risk that points at a claim, source, story, page, member, code node or control that does not exist, and a risk with no owner. Kept by the GRC desk.