Sink boundary: A cryptographic primitive is modeled because its strength may not meet the security property required by the caller.
The pack does not provide a callable signature for this record; the watched access path is shown directly.
| Arg | Access path | Purpose | Watched |
|---|---|---|---|
| Argument[0] | Argument[0] | The access path Atropos marks for this model. | ▲ sink |
CWE-327 ↗
Broken or Risky Cryptographic Algorithm
A broken or risky cryptographic algorithm or protocol is used.
Attacker's-eye view · weak-crypto
An attacker exploits weak hashing, encryption, or protocol choices to recover or forge values.
// modeled boundary: Argument[0]
CAST5(attacker_influenced_value);
1Identify the property the primitive is meant to provide.
2Use current, reviewed algorithms and parameters.
3Check key, nonce, and mode handling.
These checks require the surrounding codebase. The model names the boundary; it does not decide reachability or prove that a guard dominates every path.
Is this a bug in your code?Atropos stops here — by design
Atropos identifies Argument[0] as a weak-crypto sink. It cannot see whether untrusted data reaches this call in your repository.
Lachesis is the codebase-level step: it traces reachability and guards for this symbol.
Check this symbol in Lachesis →What neutralizes it
No sanitizer of this kind is modeled.
Model facts · verbatim from the pack
| Role | Kind | Access path | Model ID | Confidence |
|---|---|---|---|---|
| sink | weak-crypto | Argument[0] | python.cryptographyhazmatprimitivesciphersalgorithms.cast5.a0 | low · corrob. 1 |