Skip to content

v0.1.3 — security hardening

Latest

Choose a tag to compare

@HrishiKabra HrishiKabra released this 02 Jul 07:20

Input hardening from a full security review (bandit, pip-audit, wheel inspection, manual exploit-class review, live stdio probing):

  • Reject non-finite floats (Infinity/NaN, which JSON parsers accept) on ballot weights and score values — these previously reached the rules and produced nan/inf scores or a silently-wrong winner.
  • Cap ballot weights at 1e12 so no within-bounds sum can overflow to infinity.
  • Bound profile size (1,000 candidates / 100,000 ballots) — the pairwise tally is O(candidates²), an OOM vector.
  • Add SECURITY.md documenting the pure-compute posture.

No known vulnerabilities in dependencies (pip-audit clean); wheel ships only voting_mcp/.