S00-003: Record blocked task and remediation handoff
Changes: Preserve incomplete work and blocker metadata for S00-003. This checkpoint does not mark implementation accepted. Validation: Session ended with status blocked. Blocker: S00-003 cannot attest parser limits: Stanza 12.22.1 exposes no resource bounds and its persistent WebSocket parser accepts large/deep XML and reassembles incomplete documents across separate input messages. Task: S00-003 Agent: auto-protocol-902594b44429 Role: protocol Action: claim Status: blocked Task title: Проверить XMPP WSS/auth библиотеку
This commit is contained in:
1 parent
1850dbc39f
commit
f556fc0deb
14 files changed
+335
-24
No files matched your search
+61
-1
@@ -268,7 +268,8 @@
|
||||
"depends_on": [
|
||||
"S00-001",
|
||||
"S00-002",
|
||||
"S00-017"
|
||||
"S00-017",
|
||||
"S00-018"
|
||||
],
|
||||
"requirements": [
|
||||
"ACC-004",
|
||||
@@ -995,6 +996,65 @@
|
||||
],
|
||||
"context_budget_chars": 48000
|
||||
},
|
||||
{
|
||||
"id": "S00-018",
|
||||
"stage": "S00",
|
||||
"kind": "blocker",
|
||||
"root_task": "S00-003",
|
||||
"blocker_depth": 1,
|
||||
"unblocks": [
|
||||
"S00-003"
|
||||
],
|
||||
"role": "protocol",
|
||||
"reviewer_role": "security",
|
||||
"title": "Validate bounded standalone XML ingress for the XMPP candidate",
|
||||
"outcome": "One isolated runnable and independently reviewed ingress experiment enforces explicit finite XML resource limits and standalone text XML per WebSocket message before unsafe accumulation/import, through a supported library integration path.",
|
||||
"depends_on": [
|
||||
"S00-001",
|
||||
"S00-002",
|
||||
"S00-017"
|
||||
],
|
||||
"requirements": [
|
||||
"ACC-004",
|
||||
"NET-003",
|
||||
"NET-004"
|
||||
],
|
||||
"scope": [
|
||||
"experiments/0002-xmpp-library/parser-validation/**",
|
||||
"docs/decisions/0002-xmpp-parser-validation.md"
|
||||
],
|
||||
"inputs": [
|
||||
"docs/WEB_PROFILE.md",
|
||||
"docs/ARCHITECTURE.md",
|
||||
"docs/CONTRACTS.md",
|
||||
"docs/TESTING.md",
|
||||
"roles/protocol.md",
|
||||
"docs/decisions/README.md",
|
||||
"state/blockers/S00-018.md"
|
||||
],
|
||||
"spec_sections": [],
|
||||
"ui_sections": [],
|
||||
"steps": [
|
||||
"Read original blocker evidence, bounded probe, shipped parser/transport APIs and RFC 7395 framing; reproduce the stock failure with finite synthetic input.",
|
||||
"Choose and document a supported ingress integration using vetted existing XML parsing; keep limits experiment-local, do not implement a handwritten security XML parser or patch ignored vendor sources.",
|
||||
"Enforce byte/depth/element/attribute budgets and complete single-document text-message framing before unbounded tree/import work; reject invalid input terminally and clear attempt state.",
|
||||
"Add valid boundary and adversarial fixtures including incomplete messages, multiple roots, oversized tokens/attributes, deep XML, malformed XML and binary messages; verify rejection causes no stanza delivery or retained cross-message state.",
|
||||
"Record exact dependencies/licenses/browser API constraints if adding packages, runnable commands/results and limitations, then submit for independent security review."
|
||||
],
|
||||
"acceptance": [
|
||||
"Explicit finite byte/depth/element/attribute budgets are enforced before uncontrolled accumulation/import; boundary-valid stanza still parses with actual library behavior.",
|
||||
"Each WebSocket message is one complete standalone text XML document; incomplete/multiple-root/binary input is rejected and cannot be revived by a later message.",
|
||||
"Original large/deep/cross-message failure categories are rejected under documented local limits without post-import-only checks, vendor patch or TLS/CORS bypass.",
|
||||
"One supported integration path and cleanup/reset behavior are demonstrated by runnable actual ingress tests; no production shared contract, auth policy or product limit change."
|
||||
],
|
||||
"checks": [
|
||||
"Positive boundary-valid framed stanza using the actual candidate registry/parser and ingress integration.",
|
||||
"Original bounded probe categories exceed local budgets or fail framing and produce terminal rejection without stanza emission.",
|
||||
"Malformed/unfinished/multiple-root/binary/oversized-token/attribute/depth/element cases; no cross-message retained state or late revival.",
|
||||
"Fresh attempt/reset accepts valid input; dependency pin/license/API and scope inspection."
|
||||
],
|
||||
"context_budget_chars": 48000
|
||||
},
|
||||
{
|
||||
"id": "S00-010",
|
||||
"stage": "S00",
|
||||
|
||||
Reference in new issue
Block a user