Problem
CredentialReference (FUZZD-002) and RuntimeCredentialAccess (FUZZD-026) only match file paths to credential stores (~/.ssh/id_rsa, .aws/credentials, .env, etc.). In-memory credential formats — AWS access keys, Bearer tokens, JWTs, GCP service account JSON — are not detected even though they appear frequently in real-world exfiltration payloads and runtime arguments.
From the MCPTox and MCPLIB datasets, known in-memory credential formats that appear in attack payloads include:
- AWS access key IDs:
AKIA[A-Z0-9]{16} prefix
- AWS session tokens and ARNs:
arn:aws: prefix
- Bearer / Authorization header values:
Bearer , token , Authorization:
- JWT tokens:
eyJ base64 prefix (header.payload.signature)
- GCP service account JSON:
"type": "service_account" shape
- Database connection strings:
postgresql://, mongodb://, mysql://
- Generic API keys:
_api_key, _secret_key, _access_token suffix patterns in argument names
Acceptance criteria
Static scanner (description.rs)
Sequence analyzer (analyzer/sequence.rs)
Corpus
Tests
Problem
CredentialReference(FUZZD-002) andRuntimeCredentialAccess(FUZZD-026) only match file paths to credential stores (~/.ssh/id_rsa,.aws/credentials,.env, etc.). In-memory credential formats — AWS access keys, Bearer tokens, JWTs, GCP service account JSON — are not detected even though they appear frequently in real-world exfiltration payloads and runtime arguments.From the MCPTox and MCPLIB datasets, known in-memory credential formats that appear in attack payloads include:
AKIA[A-Z0-9]{16}prefixarn:aws:prefixBearer,token,Authorization:eyJbase64 prefix (header.payload.signature)"type": "service_account"shapepostgresql://,mongodb://,mysql://_api_key,_secret_key,_access_tokensuffix patterns in argument namesAcceptance criteria
Static scanner (
description.rs)CredentialReferencepatterns with in-memory format needles (AKIA, Bearer, eyJ, arn:aws:, service_account, connection string prefixes)_api_key,_secret,_tokenininputSchemafield names)bench/clean_tools.jsonafter additionsSequence analyzer (
analyzer/sequence.rs)CREDENTIAL_MARKERSinRuntimeCredentialAccessdetection to include the same in-memory formatsAKIA[A-Z0-9]{16}andeyJ[A-Za-z0-9+/]patterns in runtime argument valuesCorpus
Tests