{
  "same_root_cause": true,
  "confidence": "high",
  "explanation": "All three variant attempts reach the exact same vulnerable code path in wolfSSL_EVP_CipherFinal (wolfcrypt/src/evp.c, WC_CHACHA20_POLY1305_TYPE branch). The root cause is identical: wc_ChaCha20Poly1305_Final computes the Poly1305 tag and overwrites ctx->authTag without comparing it against the expected tag set by EVP_CIPHER_CTX_ctrl(EVP_CTRL_AEAD_SET_TAG). The fix adds a single tag comparison that blocks all variants.",
  "parent_sink": "wolfSSL_EVP_CipherFinal -> WC_CHACHA20_POLY1305_TYPE -> wc_ChaCha20Poly1305_Final",
  "variant_sink": "wolfSSL_EVP_CipherFinal -> WC_CHACHA20_POLY1305_TYPE -> wc_ChaCha20Poly1305_Final",
  "shared_code_paths": [
    "wolfcrypt/src/evp.c:wolfSSL_EVP_CipherFinal",
    "wolfcrypt/src/chacha20_poly1305.c:wc_ChaCha20Poly1305_Final"
  ]
}
