fix(av-surface): no runnable base64-to-shell line on disk
PLAN § v8.1.3 tillegg a. The bash-evasion gallery's T8 comment held a complete base64-decode-into-shell line whose 16-char blob decodes to a home-directory deletion, under probe (b)'s 24-char floor. Probe (b2) found two more of the same shape, fixed here too: the gallery README's T8 row and tests/e2e/attack-chain.test.mjs (an /etc deletion). Chosen over an exception list because the gate should have none. The gallery and the e2e test now encode the blob at runtime from the same fragments; the README shows a placeholder. Gallery: 10/10 blocked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
62e3cade60
commit
58d2e8ad8d
4 changed files with 12 additions and 8 deletions
|
|
@ -51,6 +51,9 @@ const RM = 'r' + 'm';
|
|||
const RF = '-' + 'rf';
|
||||
const TARGET = '$' + 'HOME';
|
||||
const PIPE_SH = '| ' + 'sh';
|
||||
// T8's blob is the canonical command base64-encoded at runtime, so no
|
||||
// runnable base64-to-shell line sits in this file (v8.1.3).
|
||||
const T8_BLOB = Buffer.from(`${RM} ${RF} ${TARGET}`).toString('base64');
|
||||
|
||||
const CASES = [
|
||||
{
|
||||
|
|
@ -108,8 +111,8 @@ const CASES = [
|
|||
},
|
||||
{
|
||||
tag: 'T8 — base64-pipe-shell idiom',
|
||||
// echo cm0gLXJmICRIT01F | base64 -d | sh — base64 of "rm -rf $HOME"
|
||||
command: `echo cm0gLXJmICRIT01F | base64 -d ${PIPE_SH}`,
|
||||
// echo <T8_BLOB>, decoded and piped into a shell
|
||||
command: `echo ${T8_BLOB} | base64 -d ${PIPE_SH}`,
|
||||
note: 'separate BLOCK_RULE — not a normalization, but the same shape',
|
||||
expectBlock: true,
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue