fix(ui): leave no angle bracket in a sanitized origin; judge markup on the raw one

sanitizeOrigin removed tags in a single pass, so `<scr<script>ipt>`
came out as `<script` (CodeQL js/incomplete-multi-character-sanitization
#6, #7). The page renders the result as React text, so this was not
exploitable here, but the helper's name promised more than it did. It
now also drops every remaining `<` and `>`.

validateOrigin looked for markup in the sanitized string, after the tags
had been removed, so `<b>x</b>` passed as a valid origin. It now checks
the raw origin first.

pr-any.yml gets permissions: contents: read and lock.yml the
issues/pull-requests/discussions write it needs (CodeQL
actions/missing-workflow-permissions #3, #23).
This commit is contained in:
Satoshi Qazi Muhammed committed 2026-10-20 22:21:33 +04:00
1 parent c635e89c86
commit c7eb0f157e
4 files changed
+55 -1

No files matched your search

+6
View File
@@ -5,6 +5,12 @@ on:
schedule:
- cron: '20 2/3 * * *'
permissions:
issues: write
pull-requests: write
discussions: write
jobs:
lock:
runs-on: ubuntu-latest
+4
View File
@@ -1,6 +1,10 @@
name: PR
on: [pull_request]
permissions:
contents: read
jobs:
pr:
strategy: