-
Notifications
You must be signed in to change notification settings - Fork 9
New signal (needs design pass): bulk environment/secret dump, gated on a nearby network sinkΒ #1176
Copy link
Copy link
Open
Labels
appsecAgentic guardrails, prompt injection, and RCE sensorsAgentic guardrails, prompt injection, and RCE sensorsenhancementNew feature, sensor, or structural signatureNew feature, sensor, or structural signaturegood first issueAccessible entry point for new community contributorsAccessible entry point for new community contributorspriority: lowUI tweaks, documentation, and minor optimizationsUI tweaks, documentation, and minor optimizationsquestionFurther information or community discussion requestedFurther information or community discussion requestedsupply-chainDependency firewall, manifest parsing, and CycloneDXDependency firewall, manifest parsing, and CycloneDX
Description
Metadata
Metadata
Assignees
Labels
appsecAgentic guardrails, prompt injection, and RCE sensorsAgentic guardrails, prompt injection, and RCE sensorsenhancementNew feature, sensor, or structural signatureNew feature, sensor, or structural signaturegood first issueAccessible entry point for new community contributorsAccessible entry point for new community contributorspriority: lowUI tweaks, documentation, and minor optimizationsUI tweaks, documentation, and minor optimizationsquestionFurther information or community discussion requestedFurther information or community discussion requestedsupply-chainDependency firewall, manifest parsing, and CycloneDXDependency firewall, manifest parsing, and CycloneDX
Part of epic #1171.
π Problem Statement
Beyond reading one specific known credential file (#1173's
credential_targeting), someinfo-stealers instead grab everything at once β serializing the entire environment-variable set
(
JSON.stringify(process.env),os.environcopied/dumped wholesale) and shipping it out. In CIpipelines especially, the environment often holds every secret the pipeline has access to, so this
is a stronger signal in principle than any single hardcoded or known-path secret.
This is flagged lower-confidence and needs its own design pass before implementation β unlike
the other sub-issues in #1171, "wholesale environment access" has real, common, legitimate uses
(debug logging, a health-check/status endpoint printing non-secret config, test harnesses). A bare
"reads all of
process.env" match would likely be too noisy to ship on its own.π― Objective
Work out whether a sufficiently narrow version of this signal exists β most likely gated the same
way #1173 proposes gating
credential_targeting: only counted as a real signal when the bulkenv/config read is followed within a bounded line window by a network sink (
sec_io), i.e. "grabeverything, then send it somewhere," not "grab everything" alone.
π οΈ Proposed Implementation
Open question, not a prescribed implementation β start by:
process.env/os.environaccess already appears in thelanguage-cruciblecorpus, and how often it's near an existingsec_iohit vs. not, to get areal base rate before writing any regex.
rather than inventing a new mechanism.
shipping something noisy. That's a legitimate, documented outcome (see obfuscation_flag / GlassWorm-style detector: needs a real design decision, not a code fixΒ #1150's own
build-vs-deprecate framing).
β Acceptance Criteria
tests and corpus verification, or a documented "not viable" close-out explaining why
health-check-endpoint idioms
language-cruciblecorpus before the golden-masterrebless