Skip to content

Fill sinks for tools where threat-model fires but sinks was empty#33

Merged
andrew merged 1 commit intomainfrom
fill-empty-sinks
Apr 11, 2026
Merged

Fill sinks for tools where threat-model fires but sinks was empty#33
andrew merged 1 commit intomainfrom
fill-empty-sinks

Conversation

@andrew
Copy link
Copy Markdown
Contributor

@andrew andrew commented Apr 11, 2026

Seven tools carried taxonomy that fired threat mappings but had no `[[security.sinks]]`, so `brief threat-model` said "this is dangerous" while `brief sinks` said nothing to grep for.

AdonisJS (16 sinks) is the biggest — it bundles Edge templates (`{{{}`` triple stash, `safe()` helper), Lucid ORM (`rawQuery`, `whereRaw` etc), redirect helpers, file downloads, session fixation on `auth.use().login`, and mass assignment without `$fillable`. Astro gets `set:html` and `Astro.redirect` for SSR mode. Qwik and SolidJS get their `innerHTML` equivalents. Ember gets the Handlebars triple-stash and `htmlSafe`. Eleventy gets the unescaped forms from its supported engines (Nunjucks `|safe`, Handlebars `{{{`, EJS `<%-`). Gatsby gets `dangerouslySetInnerHTML` and notes on `createPage` path traversal.

Every tool carrying `function:templating` in its taxonomy now has at least one sink.

Closes #30

AdonisJS gets 16 sinks covering its bundled Edge templates ({{{ triple
stash, safe() helper), Lucid ORM (rawQuery, whereRaw etc), redirect
helpers, file downloads, session fixation on auth.use().login, and mass
assignment without $fillable. Astro gets set:html and Astro.redirect
for SSR mode. Qwik and SolidJS get their innerHTML equivalents. Ember
gets the Handlebars triple-stash and htmlSafe. Eleventy gets the
unescaped forms from its supported template engines (Nunjucks |safe,
Handlebars {{{, EJS <%-). Gatsby gets dangerouslySetInnerHTML and
notes on createPage path traversal and GraphQL query injection.

Every tool carrying function:templating in its taxonomy now has at
least one sink.

Closes #30
@andrew andrew merged commit 2e4495b into main Apr 11, 2026
5 checks passed
@andrew andrew deleted the fill-empty-sinks branch April 11, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fill sinks where threat-model fires but sinks comes back empty

1 participant