Skip to content

Commit f6b2a68

Browse files
committed
Distinguish contributor-reported from maintainer-confirmed profiles
1 parent 5e7ea88 commit f6b2a68

3 files changed

Lines changed: 5 additions & 5 deletions

File tree

‎README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ offsets-only entry. All `yes` rows use the lab configuration: Apache prefork
5757
`session.upload_progress=On`. Per-image offsets and `libphp` sha256 are in
5858
[the offset inventory](docs/offset-inventory.md). The 8.4.25 profile needs the
5959
default retries because its stage 3 is probabilistic. The 8.4.26 deb13/apxs2
60-
row is a **contributor-reported source build**, not an official image: its
61-
stage-3 phase is instance-dependent (the contributor reported 4/4 runs on one Apache master and
60+
row is a **contributor-reported, not independently confirmed source build**,
61+
not an official image: its stage-3 phase is instance-dependent (the contributor reported 4/4 runs on one Apache master and
6262
0/5+ on others), so treat `rce: true` as “reproduced on the reporter's lab” and
6363
retry on a fresh worker/master. Because two 8.4.26 amd64 profiles exist, the
6464
dispatcher requires `--profile deb13-apxs2` for this build.

‎docs/calibration-logs/8.4.26-deb13-apxs2.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# PHP 8.4.26 Debian 13 / apxs2 calibration
22

3-
Status: **contributor-reported**, not independently reproduced by the
4-
maintainers as of 2026-10-30.
3+
Status: **contributor-reported, not independently confirmed** by the
4+
maintainer as of 2026-10-30.
55

66
## Environment
77

‎profiles/php-8.4.26-deb13-apxs2-amd64.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
"measured": {
8080
"chunk_base": "0x7fbcf4200000"
8181
},
82-
"status": "contributor-reported — RCE verified on a source-built Debian 13 lab (apxs2, Apache 2.4.69 prefork, 1 worker): uid=33(www-data) 4/4 runs through the vendor engine with this profile's parameters; stages 1-2 dispatch cleanly on every attempt. Stage-3 phase is instance-dependent (after an apache restart, a fresh master may not reclaim; retry on a new instance) and the layout differs from the docker 8.4.26 image (different toolchain): third stage-3 layout with a K=5 bin-32 phase shift. Each (4,4) pad allocates the session reference at the k-th bin-32 slot, shifting the fake-reference slot linearly, R0 = chunk+0x2260+0x60*K (gdb watchpoint sweep 0..16); K=5 places the bin-56 reclaim slot so the 31-byte fake reference is written whole (chars at R0, framing differs from the upstream 55-byte carrier whose chars land at R0+8). Stage-3 request 1 carries a PHPSESSID cookie and five 5-char/1-byte fill fields; request 2 reclaims with 15x 167-byte fake hashtables then 12x 31-byte fake references, all with 3-char field names. Command proof read out-of-band from /tmp inside the apache mount namespace (PrivateTmp; nsenter).",
82+
"status": "contributor-reported, not independently confirmed — RCE verified on a source-built Debian 13 lab (apxs2, Apache 2.4.69 prefork, 1 worker): uid=33(www-data) 4/4 runs through the vendor engine with this profile's parameters; stages 1-2 dispatch cleanly on every attempt. Stage-3 phase is instance-dependent (after an apache restart, a fresh master may not reclaim; retry on a new instance) and the layout differs from the docker 8.4.26 image (different toolchain): third stage-3 layout with a K=5 bin-32 phase shift. Each (4,4) pad allocates the session reference at the k-th bin-32 slot, shifting the fake-reference slot linearly, R0 = chunk+0x2260+0x60*K (gdb watchpoint sweep 0..16); K=5 places the bin-56 reclaim slot so the 31-byte fake reference is written whole (chars at R0, framing differs from the upstream 55-byte carrier whose chars land at R0+8). Stage-3 request 1 carries a PHPSESSID cookie and five 5-char/1-byte fill fields; request 2 reclaims with 15x 167-byte fake hashtables then 12x 31-byte fake references, all with 3-char field names. Command proof read out-of-band from /tmp inside the apache mount namespace (PrivateTmp; nsenter).",
8383
"oom_mb": 12,
8484
"oom_margin_mb": 12,
8585
"memory_limit_tested_mb": [

0 commit comments

Comments
 (0)