Sound fundamentals — accuracy and compliance fixes required
The cryptographic fundamentals are sound and we found no data-exposure path. The material issues are accuracy and compliance, not a break: QuantaCipher ships a pre-standard Kyber variant while advertising a different, standardised one, and several operational and supply-chain claims do not hold up. A single dependency migration resolves both the compliance gap and the one outstanding advisory.
4Medium2Low1Info
Status
Open findings
Findings in this review are still open. Nothing here is fixed upstream yet.
Findings
MediumAccuracy / ComplianceOpen
Advertised algorithm does not match the shipped one
QuantaCipher advertises "NIST ML-KEM / FIPS 203 / Kyber-1024", but the shipped key sizes measure public key 1184 / secret key 2400 / ciphertext 1088 bytes — those are Kyber-768, and a pre-standard round-3 variant at that. It therefore fails FIPS 203 and will not interoperate with a real ML-KEM implementation. This is a correctness and compliance defect, not a data-exposure risk: the exchange itself is not broken.
Recommendation Either advertise the parameter set actually shipped, or move to a standardised ML-KEM implementation (see the single recommended fix below).
MediumAccuracy / ComplianceOpen
Advertised algorithm does not match the shipped one
QuantaCipher advertises "NIST ML-KEM / FIPS 203 / Kyber-1024", but the shipped key sizes measure public key 1184 / secret key 2400 / ciphertext 1088 bytes — those are Kyber-768, and a pre-standard round-3 variant at that. It therefore fails FIPS 203 and will not interoperate with a real ML-KEM implementation. This is a correctness and compliance defect, not a data-exposure risk: the exchange itself is not broken.
Recommendation Either advertise the parameter set actually shipped, or move to a standardised ML-KEM implementation (see the single recommended fix below).
MediumSecurity hygieneFixed
Unmaintained pqc_kyber crate carries the KyberSlash advisory
The dependency pqc_kyber is unmaintained and is subject to KyberSlash (RUSTSEC-2023-0079, CVSS 7.4) with no fix available. Practical exploitability is low in QuantaCipher's local-only usage model — the timing side-channel needs an adversary positioned to measure decapsulation — but shipping an unmaintained crate with an open advisory is not acceptable for a security product.
Recommendation Migrate off pqc_kyber to a maintained implementation (see the single recommended fix below).
The declared source repository github.com/xaexaex/quantacipher returns 404, there is no build provenance for the published artifacts, and the package pulls a wildcard-versioned quantacipher-wasm dependency. A consumer cannot reproduce the build or pin a reviewed version.
Recommendation Publish the source, pin exact dependency versions, and attach build provenance (e.g. SLSA / signed releases).
MediumClaim accuracyOpen
Gateway metadata sent unencrypted, contradicting the zero-trust claim
QuantaCipher markets a zero-trust posture, but gateway metadata is transmitted unencrypted. The claim and the observed behaviour disagree; the metadata channel is not protected to the standard the product advertises.
Recommendation Encrypt the metadata channel end-to-end, or scope the zero-trust claim to what is actually protected.
LowAccuracyOpen
Runtime returns a hardcoded algorithm label
generate_keypair() returns a hardcoded algorithm: "Kyber-1024" string regardless of the parameters actually in use, so callers and telemetry are told the wrong algorithm at runtime. This compounds the advertised-vs-shipped mismatch above.
Recommendation Derive the reported algorithm from the implementation in use rather than a constant.
LowOperationalOpen
Default endpoints do not resolve
The default gateway host api.quantacipher.com returns NXDOMAIN, and the Python SDK defaults to http://localhost. Out of the box the client points at endpoints that do not exist, so any default-configured deployment fails or silently talks to the wrong host.
Recommendation Ship working defaults, or fail closed with a clear configuration error when no endpoint is set.
InfoRecommended fixAdvisory
One migration resolves the compliance gap and the advisory together
Migrating from pqc_kyber to the maintained ml-kem crate resolves both major threads at once: it moves QuantaCipher onto a standardised, FIPS 203-aligned ML-KEM implementation (closing the advertised-vs-shipped compliance gap) and off the unmaintained crate carrying the KyberSlash advisory. This is the single highest-leverage change.
Recommendation Adopt the ml-kem crate for key encapsulation and re-run the parameter and interoperability checks.
If you own xaexaex/quantacipher, claim this audit to bind it to your organization and mint a tamper-proof certificate. Claiming always proves ownership: the primary route installs the quantakrypto GitHub App on the repository (only a repository admin can do that), and the lighter route below asks you to commit a one-time token to the repository (only someone who can push can do that). Nobody else can claim it either way.
Show your post-quantum posture in your README. Three checks — scan (qScan), sieve (FIPS conformance), and probe (live readiness) — each shown A–F, or N/A until the check has run. Add this repo as a project and connect GitHub to populate it.