Read the docs
TI-2025-21188 Aliases CVE-2025-29776GHSA-xc76-5pf9-mx8m

Azle calling `setTimer` causes infinite loop of timers

Priority MEDIUM 44CWE-835Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-835.

Summary

Azle is a WebAssembly runtime for TypeScript and JavaScript on ICP. Calling `setTimer` in Azle versions `0.27.0`, `0.28.0`, and `0.29.0` causes an immediate infinite loop of timers to be executed on the canister, each timer attempting to clean up the global state of the previous timer. The infinite loop will occur with any valid invocation of `setTimer`. The problem has been fixed as of Azle version `0.30.0`. As a workaround, if a canister is caught in this infinite loop after calling `setTimer`, the canister can be upgraded and the timers will all be cleared, thus ending the loop.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00378 32nd percentileScored 2026-11-07
Fix Fixed azle (demergent-labs): 0.30.0azle (npm): 0.30.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
demergent-labsazle0.27.0 to before 0.30.00.30.0Patch availableCNA
—azle (npm)0.27.0 to before 0.30.00.30.0Patch availableGHSA-xc76-5pf9-mx8m
  • azle Vendordemergent-labs Affected 0.27.0 to before 0.30.0 Fixed in 0.30.0 Patch available CNA
  • azle (npm) Vendor— Affected 0.27.0 to before 0.30.0 Fixed in 0.30.0 Patch available GHSA-xc76-5pf9-mx8m

Remediation

  • Fix · CNA azle (demergent-labs) Fixed in 0.30.0
  • Fix · GHSA-xc76-5pf9-mx8m azle (npm) Fixed in 0.30.0 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2025-29776
  2. 2026-10-03 Alias added: GHSA-xc76-5pf9-mx8m

References

Sources