CVE-2026-27695Medium· 4.3▾ Sunlitzae-limiter: DynamoDB hot partition throttling enables per-entity Denial of Service
▾ Sunlit zone — Low / medium · no exploitation signal
impact 23.7 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Exploit-prediction probability, daily snapshots since Jul 13.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via OSV
Last analysed / modified upstream
0.2%
All rate limit buckets for a single entity share the same DynamoDB partition key (namespace/ENTITY#{id}). A high-traffic entity can exceed DynamoDB's per-partition throughput limits (~1,000 WCU/sec), causing throttling that degrades service for that entity — and potentially co-located entities in the same partition.
Each acquire() call performs a TransactWriteItems (or UpdateItem in speculative mode) against items sharing the same partition key. For cascade entities, this doubles to 2-4 writes per request (child + parent). At sustained rates above ~500 req/sec for a single entity, DynamoDB's adaptive capacity may not redistribute fast enough, causing ProvisionedThroughputExceededException.
The library has no built-in mitigation:
RateLimiterUnavailable is raised but the caller has already been delayedThrottledRequests CloudWatch metric increasingacquire() latency spikes and RateLimiterUnavailable exceptionsPK={ns}/BUCKET#{entity}#{resource}#{shard}, SK=#STATE — one partition per (entity, resource, shard)wcu:1000 reserved limit on every bucket — tracks DynamoDB partition write pressure in-band (name may change during implementation)wcu exhaustion or proactively by aggregator#0 is source of truth for shard_count. Aggregator propagates to other shardsoriginal / shard_count. Infrastructure limits (wcu) not dividedwcuwcu from snapshotszae-limiter < 0.10.1Upgrade to a patched release:
zae-limiter 0.10.1