Skip to content

Commit 3e73d5a

Browse files
committed
Document WAF CrossSiteScripting_BODY false-positive on webhook bodies (ABCA-858)
The CRS CrossSiteScripting_BODY rule blocks any Linear/Jira webhook whose issue body contains HTML markup (<head>, <meta>, <div>) at the WAF edge with a 403 before the Lambda runs — the task silently never starts and the sender sees an opaque 403. Live-caught on ABCA-858 (confirmed via API-GW WafFilteredException + WAF sampled request RuleNameWithinRuleGroup=CrossSiteScripting_BODY). Leaving XSS protection ON for now (real defense-in-depth) rather than weakening WAF; documenting the known false-positive inline and tracking a deliberate fix (considered per-route exclusion + operator alarm) as a backlog item. Comment only — no behavior change.
1 parent 33eb3cd commit 3e73d5a

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

cdk/src/constructs/task-api.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,15 @@ export class TaskApi extends Construct {
297297
// attachments up to 3 MB, presigned upload metadata). Excludes
298298
// SizeRestrictions_BODY only; all other CRS rules apply. Payload
299299
// size is bounded by API GW (10 MB) and validateAttachments().
300+
//
301+
// NOTE (ABCA-858, backlog): CrossSiteScripting_BODY here BLOCKS a
302+
// Linear/Jira webhook whose issue body contains HTML markup
303+
// (``<head>``, ``<meta>``, ``<div>``) at the WAF edge with a 403
304+
// before the Lambda runs — the task silently never starts and the
305+
// sender gets an opaque 403. XSS protection is intentionally kept ON
306+
// for now (a real defense-in-depth layer); the false-positive is
307+
// tracked as a backlog item to fix deliberately (e.g. a considered
308+
// per-route exclusion + operator alarm) rather than weaken WAF here.
300309
name: 'AWSManagedRulesCommonRuleSet-TaskPaths',
301310
priority: 1,
302311
overrideAction: { none: {} },

0 commit comments

Comments
 (0)