mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-15 20:05:13 +02:00
cargo fmt
This commit is contained in:
parent
bec7bbf96c
commit
3a35cd6c8f
294 changed files with 6809 additions and 3911 deletions
|
|
@ -19,8 +19,8 @@
|
|||
//! The runtime `corpus_registry::audit` test mirrors both checks so
|
||||
//! failure surfaces in `cargo test` output, not just `cargo build`.
|
||||
|
||||
use super::registry::{CORPUS, CORPUS_UNSUPPORTED_LANG_NEUTRAL};
|
||||
use super::CuratedPayload;
|
||||
use super::registry::{CORPUS, CORPUS_UNSUPPORTED_LANG_NEUTRAL};
|
||||
use crate::labels::Cap;
|
||||
|
||||
/// Byte-level equality for `&'static str` usable in const eval.
|
||||
|
|
@ -121,9 +121,7 @@ pub fn audit_benign_controls_runtime() -> Result<(), String> {
|
|||
}
|
||||
match p.benign_control {
|
||||
Some(r) => {
|
||||
let found = slice
|
||||
.iter()
|
||||
.any(|q| q.is_benign && q.label == r.label);
|
||||
let found = slice.iter().any(|q| q.is_benign && q.label == r.label);
|
||||
if !found {
|
||||
return Err(format!(
|
||||
"({:?}, {:?}) vuln payload {:?} references missing \
|
||||
|
|
@ -180,17 +178,18 @@ pub fn audit_benign_label_uniqueness_runtime() -> Result<(), String> {
|
|||
continue;
|
||||
}
|
||||
if let Some(prev_lang) = bucket.insert(p.label, lang)
|
||||
&& prev_lang != lang {
|
||||
return Err(format!(
|
||||
"benign label {:?} for cap {:#x} is registered in both \
|
||||
&& prev_lang != lang
|
||||
{
|
||||
return Err(format!(
|
||||
"benign label {:?} for cap {:#x} is registered in both \
|
||||
{:?} and {:?} — lang-agnostic resolve_benign_control \
|
||||
could match the wrong language",
|
||||
p.label,
|
||||
cap.bits(),
|
||||
prev_lang,
|
||||
lang,
|
||||
));
|
||||
}
|
||||
p.label,
|
||||
cap.bits(),
|
||||
prev_lang,
|
||||
lang,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
|
|
@ -206,7 +205,6 @@ mod corpus_registry {
|
|||
fn audit() {
|
||||
audit_benign_controls_runtime().expect("benign_control audit failed");
|
||||
audit_cap_coverage_runtime().expect("cap coverage audit failed");
|
||||
audit_benign_label_uniqueness_runtime()
|
||||
.expect("benign label uniqueness audit failed");
|
||||
audit_benign_label_uniqueness_runtime().expect("benign label uniqueness audit failed");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "cmdi-benign-c" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "cmdi-benign-c",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "cmdi-benign-cpp" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "cmdi-benign-cpp",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "cmdi-benign-go" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "cmdi-benign-go",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "cmdi-benign-java" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "cmdi-benign-java",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "cmdi-benign-javascript" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "cmdi-benign-javascript",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "cmdi-benign-php" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "cmdi-benign-php",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "cmdi-benign-python" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "cmdi-benign-python",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "cmdi-benign-ruby" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "cmdi-benign-ruby",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "cmdi-benign" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "cmdi-benign",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
// Benign control: plain text that should never produce the cmdi marker.
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "cmdi-benign-typescript" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "cmdi-benign-typescript",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"NYX_CRYPTO_WEAK",
|
||||
label: "crypto-go-weak-random",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -19,7 +21,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/crypto/go/vuln.go"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
probe_predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "crypto-go-benign",
|
||||
}),
|
||||
|
|
@ -29,7 +33,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"NYX_CRYPTO_STRONG",
|
||||
label: "crypto-go-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"NYX_CRYPTO_WEAK",
|
||||
label: "crypto-java-weak-random",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -30,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/crypto/java/vuln.java"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
probe_predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "crypto-java-benign",
|
||||
}),
|
||||
|
|
@ -40,7 +44,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"NYX_CRYPTO_STRONG",
|
||||
label: "crypto-java-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"NYX_CRYPTO_WEAK",
|
||||
label: "crypto-php-weak-random",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -18,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/crypto/php/vuln.php"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
probe_predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "crypto-php-benign",
|
||||
}),
|
||||
|
|
@ -28,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"NYX_CRYPTO_STRONG",
|
||||
label: "crypto-php-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"NYX_CRYPTO_WEAK",
|
||||
label: "crypto-python-weak-random",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -28,7 +30,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/crypto/python/vuln.py"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
probe_predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "crypto-python-benign",
|
||||
}),
|
||||
|
|
@ -38,7 +42,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"NYX_CRYPTO_STRONG",
|
||||
label: "crypto-python-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"NYX_CRYPTO_WEAK",
|
||||
label: "crypto-rust-weak-random",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -19,7 +21,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/crypto/rust/vuln.rs"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
probe_predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "crypto-rust-benign",
|
||||
}),
|
||||
|
|
@ -29,7 +33,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"NYX_CRYPTO_STRONG",
|
||||
label: "crypto-rust-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy { max_bits: WEAK_BITS }],
|
||||
predicates: &[ProbePredicate::WeakKeyEntropy {
|
||||
max_bits: WEAK_BITS,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"attacker.test",
|
||||
label: "data-exfil-go-external",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -18,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/data_exfil/go/vuln.go"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "data-exfil-go-benign",
|
||||
}),
|
||||
|
|
@ -28,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"127.0.0.1",
|
||||
label: "data-exfil-go-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"attacker.test",
|
||||
label: "data-exfil-java-external",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -18,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/data_exfil/java/vuln.java"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "data-exfil-java-benign",
|
||||
}),
|
||||
|
|
@ -28,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"127.0.0.1",
|
||||
label: "data-exfil-java-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"attacker.test",
|
||||
label: "data-exfil-js-external",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -18,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/data_exfil/js/vuln.js"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "data-exfil-js-benign",
|
||||
}),
|
||||
|
|
@ -28,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"127.0.0.1",
|
||||
label: "data-exfil-js-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"attacker.test",
|
||||
label: "data-exfil-php-external",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -18,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/data_exfil/php/vuln.php"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "data-exfil-php-benign",
|
||||
}),
|
||||
|
|
@ -28,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"127.0.0.1",
|
||||
label: "data-exfil-php-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"attacker.test",
|
||||
label: "data-exfil-python-external",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -18,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/data_exfil/python/vuln.py"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "data-exfil-python-benign",
|
||||
}),
|
||||
|
|
@ -28,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"127.0.0.1",
|
||||
label: "data-exfil-python-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"attacker.test",
|
||||
label: "data-exfil-ruby-external",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -18,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/data_exfil/ruby/vuln.rb"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "data-exfil-ruby-benign",
|
||||
}),
|
||||
|
|
@ -28,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"127.0.0.1",
|
||||
label: "data-exfil-ruby-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"attacker.test",
|
||||
label: "data-exfil-rust-external",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -18,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/data_exfil/rust/vuln.rs"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "data-exfil-rust-benign",
|
||||
}),
|
||||
|
|
@ -28,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"127.0.0.1",
|
||||
label: "data-exfil-rust-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::OutboundHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -29,9 +29,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 7,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/deserialize/java/Vuln.java",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/deserialize/java/Vuln.java"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::DeserializeGadgetInvoked {
|
||||
require_invoked: true,
|
||||
|
|
@ -55,9 +53,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 7,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/deserialize/java/Benign.java",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/deserialize/java/Benign.java"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -26,9 +26,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 7,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/deserialize/php/vuln.php",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/deserialize/php/vuln.php"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::DeserializeGadgetInvoked {
|
||||
require_invoked: true,
|
||||
|
|
@ -53,9 +51,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 7,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/deserialize/php/benign.php",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/deserialize/php/benign.php"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -25,9 +25,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 7,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/deserialize/python/vuln.py",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/deserialize/python/vuln.py"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::DeserializeGadgetInvoked {
|
||||
require_invoked: true,
|
||||
|
|
@ -49,9 +47,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 7,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/deserialize/python/benign.py",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/deserialize/python/benign.py"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -26,9 +26,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 7,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/deserialize/ruby/vuln.rb",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/deserialize/ruby/vuln.rb"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::DeserializeGadgetInvoked {
|
||||
require_invoked: true,
|
||||
|
|
@ -50,9 +48,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 7,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/deserialize/ruby/benign.rb",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/deserialize/ruby/benign.rb"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -32,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "fmt-string-benign" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "fmt-string-benign",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"https://attacker.test/",
|
||||
label: "open-redirect-go-absolute",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -29,7 +31,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/open_redirect/go/vuln.go"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "open-redirect-go-benign",
|
||||
}),
|
||||
|
|
@ -39,7 +43,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"/dashboard",
|
||||
label: "open-redirect-go-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"https://attacker.test/",
|
||||
label: "open-redirect-java-absolute",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -34,7 +36,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/open_redirect/java/Vuln.java"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "open-redirect-java-benign",
|
||||
}),
|
||||
|
|
@ -44,7 +48,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"/dashboard",
|
||||
label: "open-redirect-java-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"https://attacker.test/",
|
||||
label: "open-redirect-js-absolute",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -28,7 +30,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/open_redirect/js/vuln.js"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "open-redirect-js-benign",
|
||||
}),
|
||||
|
|
@ -38,7 +42,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"/dashboard",
|
||||
label: "open-redirect-js-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"https://attacker.test/",
|
||||
label: "open-redirect-php-absolute",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -30,7 +32,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/open_redirect/php/vuln.php"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "open-redirect-php-benign",
|
||||
}),
|
||||
|
|
@ -40,7 +44,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"/dashboard",
|
||||
label: "open-redirect-php-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -21,7 +21,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"https://attacker.test/",
|
||||
label: "open-redirect-python-absolute",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -29,7 +31,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/open_redirect/python/vuln.py"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "open-redirect-python-benign",
|
||||
}),
|
||||
|
|
@ -39,7 +43,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"/dashboard",
|
||||
label: "open-redirect-python-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"https://attacker.test/",
|
||||
label: "open-redirect-ruby-absolute",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -28,7 +30,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/open_redirect/ruby/vuln.rb"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "open-redirect-ruby-benign",
|
||||
}),
|
||||
|
|
@ -38,7 +42,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"/dashboard",
|
||||
label: "open-redirect-ruby-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"https://attacker.test/",
|
||||
label: "open-redirect-rust-absolute",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: false,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
@ -28,7 +30,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &["tests/dynamic_fixtures/open_redirect/rust/vuln.rs"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
probe_predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "open-redirect-rust-benign",
|
||||
}),
|
||||
|
|
@ -38,7 +42,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
bytes: b"/dashboard",
|
||||
label: "open-redirect-rust-benign",
|
||||
oracle: Oracle::SinkProbe {
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn { allowlist: ALLOWLIST }],
|
||||
predicates: &[ProbePredicate::RedirectHostNotIn {
|
||||
allowlist: ALLOWLIST,
|
||||
}],
|
||||
},
|
||||
is_benign: true,
|
||||
provenance: PayloadProvenance::Curated,
|
||||
|
|
|
|||
|
|
@ -21,7 +21,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "path-traversal-benign" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "path-traversal-benign",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -23,12 +23,12 @@
|
|||
use std::collections::HashMap;
|
||||
use std::sync::OnceLock;
|
||||
|
||||
use super::{CapCorpus, CuratedPayload, Oracle};
|
||||
use super::{
|
||||
cmdi, crypto, data_exfil, deserialize, fmt_string, header_injection, json_parse, ldap,
|
||||
open_redirect, path_trav, prototype_pollution, sqli, ssrf, ssti, unauthorized_id, xpath, xss,
|
||||
xxe,
|
||||
};
|
||||
use super::{CapCorpus, CuratedPayload, Oracle};
|
||||
use crate::dynamic::oracle::ProbePredicate;
|
||||
use crate::labels::Cap;
|
||||
use crate::symbol::Lang;
|
||||
|
|
@ -93,7 +93,11 @@ const ENTRIES: &[(Cap, Lang, &[CuratedPayload])] = &[
|
|||
(Cap::HTML_ESCAPE, Lang::Rust, xss::rust::PAYLOADS),
|
||||
(Cap::FMT_STRING, Lang::C, fmt_string::c::PAYLOADS),
|
||||
(Cap::DESERIALIZE, Lang::Java, deserialize::java::PAYLOADS),
|
||||
(Cap::DESERIALIZE, Lang::Python, deserialize::python::PAYLOADS),
|
||||
(
|
||||
Cap::DESERIALIZE,
|
||||
Lang::Python,
|
||||
deserialize::python::PAYLOADS,
|
||||
),
|
||||
(Cap::DESERIALIZE, Lang::Php, deserialize::php::PAYLOADS),
|
||||
(Cap::DESERIALIZE, Lang::Ruby, deserialize::ruby::PAYLOADS),
|
||||
(Cap::SSTI, Lang::Python, ssti::python_jinja2::PAYLOADS),
|
||||
|
|
@ -113,20 +117,68 @@ const ENTRIES: &[(Cap, Lang, &[CuratedPayload])] = &[
|
|||
(Cap::XPATH_INJECTION, Lang::Python, xpath::python::PAYLOADS),
|
||||
(Cap::XPATH_INJECTION, Lang::Php, xpath::php::PAYLOADS),
|
||||
(Cap::XPATH_INJECTION, Lang::JavaScript, xpath::js::PAYLOADS),
|
||||
(Cap::HEADER_INJECTION, Lang::Java, header_injection::java::PAYLOADS),
|
||||
(Cap::HEADER_INJECTION, Lang::Python, header_injection::python::PAYLOADS),
|
||||
(Cap::HEADER_INJECTION, Lang::Php, header_injection::php::PAYLOADS),
|
||||
(Cap::HEADER_INJECTION, Lang::Ruby, header_injection::ruby::PAYLOADS),
|
||||
(Cap::HEADER_INJECTION, Lang::JavaScript, header_injection::js::PAYLOADS),
|
||||
(Cap::HEADER_INJECTION, Lang::Go, header_injection::go::PAYLOADS),
|
||||
(Cap::HEADER_INJECTION, Lang::Rust, header_injection::rust::PAYLOADS),
|
||||
(Cap::OPEN_REDIRECT, Lang::Java, open_redirect::java::PAYLOADS),
|
||||
(Cap::OPEN_REDIRECT, Lang::Python, open_redirect::python::PAYLOADS),
|
||||
(
|
||||
Cap::HEADER_INJECTION,
|
||||
Lang::Java,
|
||||
header_injection::java::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::HEADER_INJECTION,
|
||||
Lang::Python,
|
||||
header_injection::python::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::HEADER_INJECTION,
|
||||
Lang::Php,
|
||||
header_injection::php::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::HEADER_INJECTION,
|
||||
Lang::Ruby,
|
||||
header_injection::ruby::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::HEADER_INJECTION,
|
||||
Lang::JavaScript,
|
||||
header_injection::js::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::HEADER_INJECTION,
|
||||
Lang::Go,
|
||||
header_injection::go::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::HEADER_INJECTION,
|
||||
Lang::Rust,
|
||||
header_injection::rust::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::OPEN_REDIRECT,
|
||||
Lang::Java,
|
||||
open_redirect::java::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::OPEN_REDIRECT,
|
||||
Lang::Python,
|
||||
open_redirect::python::PAYLOADS,
|
||||
),
|
||||
(Cap::OPEN_REDIRECT, Lang::Php, open_redirect::php::PAYLOADS),
|
||||
(Cap::OPEN_REDIRECT, Lang::Ruby, open_redirect::ruby::PAYLOADS),
|
||||
(Cap::OPEN_REDIRECT, Lang::JavaScript, open_redirect::js::PAYLOADS),
|
||||
(
|
||||
Cap::OPEN_REDIRECT,
|
||||
Lang::Ruby,
|
||||
open_redirect::ruby::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::OPEN_REDIRECT,
|
||||
Lang::JavaScript,
|
||||
open_redirect::js::PAYLOADS,
|
||||
),
|
||||
(Cap::OPEN_REDIRECT, Lang::Go, open_redirect::go::PAYLOADS),
|
||||
(Cap::OPEN_REDIRECT, Lang::Rust, open_redirect::rust::PAYLOADS),
|
||||
(
|
||||
Cap::OPEN_REDIRECT,
|
||||
Lang::Rust,
|
||||
open_redirect::rust::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::PROTOTYPE_POLLUTION,
|
||||
Lang::JavaScript,
|
||||
|
|
@ -142,16 +194,48 @@ const ENTRIES: &[(Cap, Lang, &[CuratedPayload])] = &[
|
|||
(Cap::CRYPTO, Lang::Php, crypto::php::PAYLOADS),
|
||||
(Cap::CRYPTO, Lang::Go, crypto::go::PAYLOADS),
|
||||
(Cap::CRYPTO, Lang::Rust, crypto::rust::PAYLOADS),
|
||||
(Cap::JSON_PARSE, Lang::JavaScript, json_parse::javascript::PAYLOADS),
|
||||
(
|
||||
Cap::JSON_PARSE,
|
||||
Lang::JavaScript,
|
||||
json_parse::javascript::PAYLOADS,
|
||||
),
|
||||
(Cap::JSON_PARSE, Lang::Python, json_parse::python::PAYLOADS),
|
||||
(Cap::JSON_PARSE, Lang::Ruby, json_parse::ruby::PAYLOADS),
|
||||
(Cap::UNAUTHORIZED_ID, Lang::Python, unauthorized_id::python::PAYLOADS),
|
||||
(Cap::UNAUTHORIZED_ID, Lang::Ruby, unauthorized_id::ruby::PAYLOADS),
|
||||
(Cap::UNAUTHORIZED_ID, Lang::Java, unauthorized_id::java::PAYLOADS),
|
||||
(Cap::UNAUTHORIZED_ID, Lang::Php, unauthorized_id::php::PAYLOADS),
|
||||
(Cap::UNAUTHORIZED_ID, Lang::JavaScript, unauthorized_id::js::PAYLOADS),
|
||||
(Cap::UNAUTHORIZED_ID, Lang::Go, unauthorized_id::go::PAYLOADS),
|
||||
(Cap::UNAUTHORIZED_ID, Lang::Rust, unauthorized_id::rust::PAYLOADS),
|
||||
(
|
||||
Cap::UNAUTHORIZED_ID,
|
||||
Lang::Python,
|
||||
unauthorized_id::python::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::UNAUTHORIZED_ID,
|
||||
Lang::Ruby,
|
||||
unauthorized_id::ruby::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::UNAUTHORIZED_ID,
|
||||
Lang::Java,
|
||||
unauthorized_id::java::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::UNAUTHORIZED_ID,
|
||||
Lang::Php,
|
||||
unauthorized_id::php::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::UNAUTHORIZED_ID,
|
||||
Lang::JavaScript,
|
||||
unauthorized_id::js::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::UNAUTHORIZED_ID,
|
||||
Lang::Go,
|
||||
unauthorized_id::go::PAYLOADS,
|
||||
),
|
||||
(
|
||||
Cap::UNAUTHORIZED_ID,
|
||||
Lang::Rust,
|
||||
unauthorized_id::rust::PAYLOADS,
|
||||
),
|
||||
(Cap::DATA_EXFIL, Lang::Python, data_exfil::python::PAYLOADS),
|
||||
(Cap::DATA_EXFIL, Lang::Ruby, data_exfil::ruby::PAYLOADS),
|
||||
(Cap::DATA_EXFIL, Lang::Java, data_exfil::java::PAYLOADS),
|
||||
|
|
@ -355,7 +439,7 @@ pub fn audit_marker_collisions() -> Vec<(&'static str, &'static str, &'static st
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::dynamic::corpus::{benign_payload_for, CORPUS_VERSION};
|
||||
use crate::dynamic::corpus::{CORPUS_VERSION, benign_payload_for};
|
||||
|
||||
#[test]
|
||||
fn supported_caps_have_payloads() {
|
||||
|
|
@ -404,8 +488,14 @@ mod tests {
|
|||
#[test]
|
||||
fn phase_11_caps_pair_benign_controls_per_lang() {
|
||||
let cases: &[(Cap, &[Lang])] = &[
|
||||
(Cap::CRYPTO, &[Lang::Java, Lang::Python, Lang::Php, Lang::Go, Lang::Rust]),
|
||||
(Cap::JSON_PARSE, &[Lang::JavaScript, Lang::Python, Lang::Ruby]),
|
||||
(
|
||||
Cap::CRYPTO,
|
||||
&[Lang::Java, Lang::Python, Lang::Php, Lang::Go, Lang::Rust],
|
||||
),
|
||||
(
|
||||
Cap::JSON_PARSE,
|
||||
&[Lang::JavaScript, Lang::Python, Lang::Ruby],
|
||||
),
|
||||
(
|
||||
Cap::UNAUTHORIZED_ID,
|
||||
&[
|
||||
|
|
@ -434,10 +524,7 @@ mod tests {
|
|||
for (cap, langs) in cases {
|
||||
for lang in *langs {
|
||||
let slice = payloads_for_lang(*cap, *lang);
|
||||
assert!(
|
||||
!slice.is_empty(),
|
||||
"({cap:?}, {lang:?}) must have payloads",
|
||||
);
|
||||
assert!(!slice.is_empty(), "({cap:?}, {lang:?}) must have payloads",);
|
||||
let vuln = slice
|
||||
.iter()
|
||||
.find(|p| !p.is_benign)
|
||||
|
|
@ -596,7 +683,10 @@ mod tests {
|
|||
#[test]
|
||||
fn ssrf_has_oob_nonce_slot() {
|
||||
let has_oob = payloads_for(Cap::SSRF).iter().any(|p| p.oob_nonce_slot);
|
||||
assert!(has_oob, "SSRF corpus must include an OOB-nonce-slot payload");
|
||||
assert!(
|
||||
has_oob,
|
||||
"SSRF corpus must include an OOB-nonce-slot payload"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -617,8 +707,7 @@ mod tests {
|
|||
.find(|p| p.oob_nonce_slot)
|
||||
.expect("must have OOB payload");
|
||||
let url = "http://127.0.0.1:54321/mynonce";
|
||||
let bytes =
|
||||
materialise_bytes(p, Some(url)).expect("OOB payload materialises with URL");
|
||||
let bytes = materialise_bytes(p, Some(url)).expect("OOB payload materialises with URL");
|
||||
assert_eq!(&*bytes, url.as_bytes());
|
||||
}
|
||||
|
||||
|
|
@ -637,7 +726,11 @@ mod tests {
|
|||
(Cap::SQL_QUERY, "sqli-tautology", "sqli-benign"),
|
||||
(Cap::SQL_QUERY, "sqli-union-nyx", "sqli-benign"),
|
||||
(Cap::CODE_EXEC, "cmdi-echo-marker", "cmdi-benign"),
|
||||
(Cap::FILE_IO, "path-traversal-passwd", "path-traversal-benign"),
|
||||
(
|
||||
Cap::FILE_IO,
|
||||
"path-traversal-passwd",
|
||||
"path-traversal-benign",
|
||||
),
|
||||
(Cap::SSRF, "ssrf-file-scheme", "ssrf-benign"),
|
||||
(Cap::HTML_ESCAPE, "xss-script-marker", "xss-benign-text"),
|
||||
];
|
||||
|
|
@ -723,7 +816,10 @@ mod tests {
|
|||
let mut entries_by_cap: HashMap<u32, Vec<(Lang, &'static [CuratedPayload])>> =
|
||||
HashMap::new();
|
||||
for &(cap, lang, slice) in CORPUS.entries {
|
||||
entries_by_cap.entry(cap.bits()).or_default().push((lang, slice));
|
||||
entries_by_cap
|
||||
.entry(cap.bits())
|
||||
.or_default()
|
||||
.push((lang, slice));
|
||||
}
|
||||
for (cap_bits, langs) in &entries_by_cap {
|
||||
if langs.len() != 1 {
|
||||
|
|
@ -899,9 +995,8 @@ mod tests {
|
|||
.iter()
|
||||
.find(|p| !p.is_benign)
|
||||
.expect("each lang must have an LDAP vuln payload");
|
||||
let resolved =
|
||||
super::resolve_benign_control_lang(vuln, Cap::LDAP_INJECTION, lang)
|
||||
.expect("lang-aware benign control must resolve");
|
||||
let resolved = super::resolve_benign_control_lang(vuln, Cap::LDAP_INJECTION, lang)
|
||||
.expect("lang-aware benign control must resolve");
|
||||
assert!(resolved.is_benign);
|
||||
}
|
||||
}
|
||||
|
|
@ -941,9 +1036,8 @@ mod tests {
|
|||
.iter()
|
||||
.find(|p| !p.is_benign)
|
||||
.expect("each lang must have an XPath vuln payload");
|
||||
let resolved =
|
||||
super::resolve_benign_control_lang(vuln, Cap::XPATH_INJECTION, lang)
|
||||
.expect("lang-aware benign control must resolve");
|
||||
let resolved = super::resolve_benign_control_lang(vuln, Cap::XPATH_INJECTION, lang)
|
||||
.expect("lang-aware benign control must resolve");
|
||||
assert!(resolved.is_benign);
|
||||
}
|
||||
}
|
||||
|
|
@ -992,9 +1086,8 @@ mod tests {
|
|||
.iter()
|
||||
.find(|p| !p.is_benign)
|
||||
.expect("each lang must have a HEADER_INJECTION vuln payload");
|
||||
let resolved =
|
||||
super::resolve_benign_control_lang(vuln, Cap::HEADER_INJECTION, lang)
|
||||
.expect("lang-aware benign control must resolve");
|
||||
let resolved = super::resolve_benign_control_lang(vuln, Cap::HEADER_INJECTION, lang)
|
||||
.expect("lang-aware benign control must resolve");
|
||||
assert!(resolved.is_benign);
|
||||
}
|
||||
}
|
||||
|
|
@ -1036,9 +1129,8 @@ mod tests {
|
|||
.iter()
|
||||
.find(|p| !p.is_benign)
|
||||
.expect("each lang must have a PROTOTYPE_POLLUTION vuln payload");
|
||||
let resolved =
|
||||
super::resolve_benign_control_lang(vuln, Cap::PROTOTYPE_POLLUTION, lang)
|
||||
.expect("lang-aware benign control must resolve");
|
||||
let resolved = super::resolve_benign_control_lang(vuln, Cap::PROTOTYPE_POLLUTION, lang)
|
||||
.expect("lang-aware benign control must resolve");
|
||||
assert!(resolved.is_benign);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
fixture_paths: &["tests/benchmark/corpus/rust/sqli/sqli_rusqlite_format.rs"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "sqli-benign" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "sqli-benign",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
@ -32,7 +34,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
fixture_paths: &["tests/benchmark/corpus/rust/sqli/sqli_rusqlite_format.rs"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "sqli-benign" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "sqli-benign",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
// Benign control: ordinary value that should never produce the SQL marker.
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
fixture_paths: &["tests/benchmark/corpus/rust/ssrf/ssrf_reqwest.rs"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "ssrf-benign" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "ssrf-benign",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -19,9 +19,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 8,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/ssti/java_thymeleaf/vuln.java",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/ssti/java_thymeleaf/vuln.java"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::TemplateEvalEqual { expected: 49 }],
|
||||
benign_control: Some(PayloadRef {
|
||||
|
|
@ -39,9 +37,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 8,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/ssti/java_thymeleaf/benign.java",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/ssti/java_thymeleaf/benign.java"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -25,9 +25,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 8,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/ssti/js_handlebars/vuln.js",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/ssti/js_handlebars/vuln.js"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::TemplateEvalEqual { expected: 49 }],
|
||||
benign_control: Some(PayloadRef {
|
||||
|
|
@ -45,9 +43,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 8,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/ssti/js_handlebars/benign.js",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/ssti/js_handlebars/benign.js"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -19,9 +19,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 8,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/ssti/php_twig/vuln.php",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/ssti/php_twig/vuln.php"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::TemplateEvalEqual { expected: 49 }],
|
||||
benign_control: Some(PayloadRef {
|
||||
|
|
@ -39,9 +37,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 8,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/ssti/php_twig/benign.php",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/ssti/php_twig/benign.php"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -26,9 +26,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 8,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/ssti/python_jinja2/vuln.py",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/ssti/python_jinja2/vuln.py"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::TemplateEvalEqual { expected: 49 }],
|
||||
benign_control: Some(PayloadRef {
|
||||
|
|
@ -46,9 +44,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 8,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/ssti/python_jinja2/benign.py",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/ssti/python_jinja2/benign.py"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -19,9 +19,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 8,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/ssti/ruby_erb/vuln.rb",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/ssti/ruby_erb/vuln.rb"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::TemplateEvalEqual { expected: 49 }],
|
||||
benign_control: Some(PayloadRef {
|
||||
|
|
@ -39,9 +37,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 8,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/ssti/ruby_erb/benign.rb",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/ssti/ruby_erb/benign.rb"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -18,7 +18,9 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
fixture_paths: &["tests/benchmark/corpus/rust/xss/axum_html/main.rs"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: Some(PayloadRef { label: "xss-benign-text" }),
|
||||
benign_control: Some(PayloadRef {
|
||||
label: "xss-benign-text",
|
||||
}),
|
||||
no_benign_control_rationale: None,
|
||||
},
|
||||
CuratedPayload {
|
||||
|
|
|
|||
|
|
@ -29,9 +29,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 15,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/go/vuln.go",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/go/vuln.go"],
|
||||
oob_nonce_slot: true,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
@ -57,9 +55,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 9,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/go/vuln.go",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/go/vuln.go"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::XxeEntityExpanded {
|
||||
require_expanded: true,
|
||||
|
|
@ -82,9 +78,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 9,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/go/benign.go",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/go/benign.go"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -31,9 +31,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 15,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/java/Vuln.java",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/java/Vuln.java"],
|
||||
oob_nonce_slot: true,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
@ -59,9 +57,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 9,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/java/Vuln.java",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/java/Vuln.java"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::XxeEntityExpanded {
|
||||
require_expanded: true,
|
||||
|
|
@ -84,9 +80,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 9,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/java/Benign.java",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/java/Benign.java"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -29,9 +29,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 15,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/php/vuln.php",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/php/vuln.php"],
|
||||
oob_nonce_slot: true,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
@ -57,9 +55,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 9,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/php/vuln.php",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/php/vuln.php"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::XxeEntityExpanded {
|
||||
require_expanded: true,
|
||||
|
|
@ -82,9 +78,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 9,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/php/benign.php",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/php/benign.php"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -39,9 +39,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 15,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/python/vuln.py",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/python/vuln.py"],
|
||||
oob_nonce_slot: true,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
@ -68,9 +66,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 9,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/python/vuln.py",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/python/vuln.py"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::XxeEntityExpanded {
|
||||
require_expanded: true,
|
||||
|
|
@ -93,9 +89,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 9,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/python/benign.py",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/python/benign.py"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
|
|
@ -28,9 +28,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 15,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/ruby/vuln.rb",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/ruby/vuln.rb"],
|
||||
oob_nonce_slot: true,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
@ -56,9 +54,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 9,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/ruby/vuln.rb",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/ruby/vuln.rb"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[ProbePredicate::XxeEntityExpanded {
|
||||
require_expanded: true,
|
||||
|
|
@ -81,9 +77,7 @@ pub const PAYLOADS: &[CuratedPayload] = &[
|
|||
provenance: PayloadProvenance::Curated,
|
||||
since_corpus_version: 9,
|
||||
deprecated_at_corpus_version: None,
|
||||
fixture_paths: &[
|
||||
"tests/dynamic_fixtures/xxe/ruby/benign.rb",
|
||||
],
|
||||
fixture_paths: &["tests/dynamic_fixtures/xxe/ruby/benign.rb"],
|
||||
oob_nonce_slot: false,
|
||||
probe_predicates: &[],
|
||||
benign_control: None,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue