The PHP2Shell fix, two weeks on: what the PHP-src issue tracker shows
Comments on “The PHP2Shell fix, two weeks on: what the PHP-src issue tracker shows”
Claim-checked. Scored by all three judges, and its checkable claims were compared with the sources it cites. How far stories are checked
The PHP2Shell fix, shipped October 21 in PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, makes memory_limit soft and adds a hard limit, by default 200% of it, that ends the process with exit 137. AI News Report found eight php-src issues naming the fix commit, four of them behavior regressions. In its test, a sprintf call that once gave a fatal error now exits 137; four fix PRs for that case were open. Several figures, including the commit size and the crash-queue statistics, could not be independently checked.
Why it ranked
No. 4 of 139 with a score of 0.74. The panel rated it highest on technical depth (0.89) and substantiated (0.88), lowest on audience breadth (0.63).
- AI judgeJudge 2claude-haiku-5-5
- Detailed, reproduced analysis of a PHP security fix and its regressions, with concrete commands and sources; strong practical value for PHP builders and security teams, somewhat niche in scope.
- AI judgeJudge 3gpt-5.6-luna
- A well-supported technical follow-up with reproducible commands, source inspection, regression testing, and concrete operational implications. It adds meaningful post-fix evidence beyond the prior PHP2Shell coverage, though its scope is mainly PHP and security practitioners.
Each judge wrote its line after answering the rubric, with the site and the author still hidden. Every answer behind this is in the table under Score.
Score
0.74total under rubric v2.3
- Significance0.66
- Reader interest0.84
- Audience breadth0.63
- Practical relevance0.80
- Substantiated0.88
- Technical depth0.89
- New information0.86
- Counts against: Promotional0.03
- Counts against: Overclaim0.16
Each judge’s answer per question (0–1), their mean and spread, and what the question adds to the score (weight × mean).
| Question | Judge 1 | Judge 2 | Judge 3 | Mean | Spread | Weight | Contribution (weight times mean) |
|---|---|---|---|---|---|---|---|
| SignificanceHow much does this change what people in tech know or can do? | 0.65 | 0.62 | 0.72 | 0.66 | 0.10 | +0.24 | +0.159 |
| Reader interestWould a well-informed senior engineer or tech founder want to read this today, and likely pass it on? | 0.76 | 0.85 | 0.90 | 0.84 | 0.14 | +0.26 | +0.218 |
| Audience breadthHow many people who build technology does it concern? | 0.64 | 0.70 | 0.56 | 0.63 | 0.14 | +0.13 | +0.082 |
| Practical relevanceHow useful is it to someone who builds software or tech products? | 0.83 | 0.80 | 0.78 | 0.80 | 0.05 | +0.22 | +0.177 |
| SubstantiatedHow well is it backed? Consider whether it is the primary source, and whether its main claims come with data, code, a demo, a reproducible method or citations. | 0.91 | 0.85 | 0.88 | 0.88 | 0.06 | +0.05 | +0.044 |
| Technical depthHow technically substantive is it? | 0.99 | 0.85 | 0.82 | 0.89 | 0.17 | +0.05 | +0.044 |
| New informationDoes it contain information absent from the stories covered in the last 7 days (list provided)? | 0.83 | 0.82 | 0.94 | 0.86 | 0.12 | +0.05 | +0.043 |
| PromotionalIs it mainly marketing with little substance (a press release, ad or sponsored post with no real information)? A launch post that carries real news is not promotional. | 0.06 | 0.03 | 0.01 | 0.03 | 0.05 | −0.19 | −0.006 |
| OverclaimDo the headline or conclusions claim more than the body supports? | 0.20 | 0.20 | 0.08 | 0.16 | 0.12 | −0.11 | −0.018 |
| Sum of contributions | +0.744 | ||||||
| Claim-check penalty | 0.000 | ||||||
| Total, as published | 0.744 | ||||||
Spread is the highest minus the lowest judge answer. marks a spread above 0.40: the judges disagree, and the story is marked contested.
The badge for this ranking, for the author's page or anyone's: one line of HTML, and it links back here.
<a href="https://rubric.hrih.si/editions/2026-11-05/4/"><img src="https://rubric.hrih.si/badge/2026-11-05/4.svg" alt="Ranked #4 on Rubric, 5 Nov 2026" width="231" height="28"></a>Claim check
Claim check: 2 matches source · 2 no source given · 4 couldn’t check. Each claim is compared with the source the article itself cites; a flag is published only when both checkers agree.
Couldn’t checkNumber
The PHP2Shell fix commit 31c0ea7d, "Avoid state corruption via bailout," adds 11,556 and removes 1,017 lines.
The source was unreachable, paywalled or too long, or the two checkers disagreed.
The article says “The commit is 31c0ea7d, "Avoid state corruption via bailout," +11,556 and -1,017 lines”
The source says No passage could be compared.
Source cited by the article: github.com/php/php-src/commit/31c0ea7d7ff1d1fccb6492e52dab544011628065
Couldn’t checkVersion
The fix makes memory_limit soft and adds a hard limit of 200% of memory_limit by default; crossing the hard limit ends the process with _exit(137).
The source was unreachable, paywalled or too long, or the two checkers disagreed.
The article says “makes memory_limit soft and adds a hard limit, 200% of memory_limit by default. Crossing the hard limit ends the process with _exit(137”
The source says No passage could be compared.
Source cited by the article: github.com/php/php-src/commit/31c0ea7d7ff1d1fccb6492e52dab544011628065
Matches sourceVersion
The PHP2Shell fix shipped in PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35.
The cited source says the same thing.
The article says “It shipped in 8.5.12, 8.4.27, 8.3.36 and 8.2.35”
The source says “the PHP project released PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35. These releases fix two critical vulnerabilities”
Source cited by the article: thephp.foundation/blog/2026/10/21/todays-php-security-release-and-how-were-strengthening-php-security
Couldn’t checkCausal conclusion
The PHP Foundation says the bug arose when a memory_limit fatal error jumped out via longjmp from C code midway through setting up internal state, leaving half-built state that later code treated as valid; both CVEs come from this pattern.
The source was unreachable, paywalled or too long, or the two checkers disagreed.
The article says “the fatal error jumped out of C code that was halfway through setting up internal state”
The source says No passage could be compared.
Source cited by the article: thephp.foundation/blog/2026/10/21/todays-php-security-release-and-how-were-strengthening-php-security
Couldn’t checkNumber
The sprintf("%400000000s", "") script in GH-24492 gives a normal fatal error (exit 255) on PHP 8.5.0 and 8.3.30 but exits with code 137 on PHP 8.5.12.
The source was unreachable, paywalled or too long, or the two checkers disagreed.
The article says “On the official php:8.5.12-cli Docker image (built Oct 28), the same script never prints "survived”
The source says No passage could be compared.
Source cited by the article: github.com/php/php-src/issues/24492
No source givenNumber
All four fix PRs for GH-24492 are open and none is merged, and the 8.5.13 NEWS dated November 19 does not list it.
The article gives no link or citation for it.
The article says “As of tonight all four are open and none is merged”
The source says No source to compare with.
No source givenNumber
Of 362 php-src issues containing AddressSanitizer output since January 2022, 313 are closed with a median time to close of 1.8 days.
The article gives no link or citation for it.
The article says “Median time to close: 1.8 days”
The source says No source to compare with.
Matches sourceCausal conclusion
The PHP2Shell root cause was never in the public crash queue; a core developer found early signs, and work stalled until Calif reported working remote code execution on August 11, all in the private security process.
The cited source says the same thing.
The article says “Work on a fix stalled and restarted for months, until Calif reported a working remote code execution on August 11”
The source says “On August 11th, researcher Ryan A at Calif reported an unconditional remote code execution with the same root cause as the OOM problem we had found in 2024”
Source cited by the article: thephp.foundation/blog/2026/10/21/todays-php-security-release-and-how-were-strengthening-php-security
Also covered by
No other coverage was clustered with this story.
Elsewhere
Elsewhere: HN 2 pts, not on front page
Recorded for context only, checked 5 Nov 2026, 05:46 UTC. It played no part in the ranking.