AGR-2026-044 — Body-aware successful responses lack private cache control
Last observed by the head-to-head audit at 2026-08-10T09:38:20.026276Z.
Audited heads
| Target |
Repository |
Commit |
Conformance |
Semantic review |
typescript |
wevm/mppx |
b7ab48e38e3d |
Complete |
Reference |
rust |
tempoxyz/mpp-rs |
28c704988b3d |
Complete |
Complete |
go |
tempoxyz/mpp-go |
266810add451 |
Complete |
Complete |
java |
stripe/mpp-java |
bc52e0f5c77b |
Complete |
Complete |
python |
tempoxyz/pympp |
09b449739221 |
Complete |
Complete |
ruby |
stripe/mpp-rb |
58a98bbf6820 |
Complete |
Complete |
Finding
- Fingerprint:
semantic:http-caching/receipt-response-is-private
- Source: semantic
- Affected SDKs:
rust
- Clean SDKs: none
- Not reported by semantic review:
go, java, python, ruby
- Canonical reference:
draft-httpauth-payment-00 § Caching
- Severity: medium
- Confidence: high
Evidence
| SDK |
Canonical evidence |
SDK evidence |
Suggested test |
rust |
http().respondReceipt — Adds private to the response's Cache-Control directives whenever it attaches Payment-Receipt. |
PaymentBodyService::call — Attaches Payment-Receipt after successful body-bound verification but returns the application response without adding private to Cache-Control. |
Pass a valid body-bound credential through PaymentBodyLayer with an inner response using Cache-Control: max-age=60; assert the result has Payment-Receipt and Cache-Control containing both max-age=60 and private. |
rust: The target's body-aware middleware attaches Payment-Receipt but does not add Cache-Control: private. A shared intermediary may therefore cache a response containing sensitive receipt data, unlike canonical behavior.
Available /ag commands
Post a command as a new comment. Only configured maintainers can run these commands.
Quick action
Use GitHub's copy button, then post this command as a comment:
| Command |
What it does |
/ag fix |
Opens or retries draft fixes for every affected PR-enabled SDK. |
/ag fix rust |
Opens or retries the draft fix for rust only. |
/ag fix "instruction" |
Applies the instruction to affected fixes; recorded PRs also incorporate unresolved review feedback and failed CI. |
/ag status |
Reports the current state of linked remediation pull requests. |
AGR-2026-044 — Body-aware successful responses lack private cache control
Last observed by the head-to-head audit at
2026-08-10T09:38:20.026276Z.Audited heads
typescriptwevm/mppxb7ab48e38e3drusttempoxyz/mpp-rs28c704988b3dgotempoxyz/mpp-go266810add451javastripe/mpp-javabc52e0f5c77bpythontempoxyz/pympp09b449739221rubystripe/mpp-rb58a98bbf6820Finding
semantic:http-caching/receipt-response-is-privaterustgo,java,python,rubydraft-httpauth-payment-00 § CachingEvidence
rustrust: The target's body-aware middleware attaches Payment-Receipt but does not add Cache-Control: private. A shared intermediary may therefore cache a response containing sensitive receipt data, unlike canonical behavior.
Available
/agcommandsPost a command as a new comment. Only configured maintainers can run these commands.
rustQuick action
Use GitHub's copy button, then post this command as a comment:
/ag fix/ag fix rustrustonly./ag fix "instruction"/ag status