Mittel

zae-limiter: DynamoDB hot partition throttling enables per-entity Denial of Service

  • Veröffentlicht: 25.02.2026
  • Aktualisiert: 11.10.2026 14:17

Summary

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.

Details

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:

  • No partition key sharding/salting
  • No write coalescing or batching
  • No client-side admission control before hitting DynamoDB
  • RateLimiterUnavailable is raised but the caller has already been delayed

Impact

  • Availability: High-traffic entities experience elevated latency and rejected requests beyond what their rate limits specify
  • Fairness: Other entities sharing the same DynamoDB partition may experience collateral throttling
  • Multi-tenant risk: In a shared LLM proxy scenario, one tenant's burst traffic could degrade service for others

Reproduction

  1. Create an entity with high rate limits (e.g., 100,000 rpm)
  2. Send sustained traffic at 1,000+ req/sec to a single entity
  3. Observe DynamoDB ThrottledRequests CloudWatch metric increasing
  4. Observe acquire() latency spikes and RateLimiterUnavailable exceptions

Remediation Design: Pre-Shard Buckets

  • Move buckets to PK={ns}/BUCKET#{entity}#{resource}#{shard}, SK=#STATE — one partition per (entity, resource, shard)
  • Auto-inject wcu:1000 reserved limit on every bucket — tracks DynamoDB partition write pressure in-band (name may change during implementation)
  • Shard doubling (1→2→4→8) triggered by client on wcu exhaustion or proactively by aggregator
  • Shard 0 at suffix #0 is source of truth for shard_count. Aggregator propagates to other shards
  • Original limits stored on bucket, effective limits derived: original / shard_count. Infrastructure limits (wcu) not divided
  • Shard selection: random/round-robin. On application limit exhaustion, retry on another shard (max 2 retries)
  • Lazy shard creation on first access
  • Bucket discovery via GSI3 (KEYS_ONLY) + BatchGetItem. GSI2 for resource aggregation unchanged
  • Cascade: parent unaware, protected by own wcu
  • Aggregator: parse new PK format, key by shard_id, effective limits for refill, filter wcu from snapshots
  • Clean break migration: schema version bump, old buckets ignored, new buckets created on first access
  • $0.625/M preserved on hot path

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
Python (PyPI) zae-limiter < 0.10.1 0.10.1

Verweise

CVSS-Wert 4.3/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
Schwäche (CWE)
CWE-770
Plattform
Python (PyPI)
Paket
zae-limiter
Veröffentlicht
25.02.2026
Aktualisiert
11.10.2026 14:17

Quellen und Lizenzen

OSV / GitHub Advisory Database - PYSEC-2026-3434 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-76rv-2r9v-c5m6 - CC BY 4.0

Schwachstellenhistorie: zae-limiter

Alle veröffentlichten Schwachstellen dieses Pakets (Python (PyPI)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Dies ist die einzige bekannte Schwachstelle dieses Pakets.

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.