This project might be open to known security vulnerabilities, which can be prevented by tightening the version range of affected dependencies. Find detailed information at the bottom.

Crate swc_ecma_ast

Dependencies

(12 total, 8 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 arbitrary^11.4.2up to date
 bitflags^12.13.1out of date
 bytecheck^0.6.90.8.3out of date
 is-macro^0.2.00.3.7out of date
 num-bigint^0.40.5.1out of date
 rkyv ⚠️=0.7.370.8.18out of date
 scoped-tls^1.0.01.0.1up to date
 serde^1.0.1331.0.229up to date
 string_enum^0.3.11.0.2out of date
 swc_atoms^0.4.1010.0.0out of date
 swc_common^0.27.1625.0.0out of date
 unicode-id^0.30.3.6up to date

Dev dependencies

(1 total, all up-to-date)

CrateRequiredLatestStatus
 serde_json^11.0.151up to date

Security Vulnerabilities

rkyv: Potential Undefined Behaviors in `Arc<T>`/`Rc<T>` impls of `from_value` on OOM

RUSTSEC-2026-0001

The SharedPointer::alloc implementation for sync::Arc<T> and rc::Rc<T> in rkyv/src/impls/alloc/rc/atomic.rs (and rc.rs) does not check if the allocator returns a null pointer on OOM (Out of Memory).

This null pointer can flow through to SharedPointer::from_value, which calls Box::from_raw(ptr) with the null pointer. This triggers undefined behavior when utilizing safe deserialization APIs (such as rkyv::from_bytes or rkyv::deserialize_using) if an OOM condition occurs during the allocation of the shared pointer.

The issue is reachable through safe code and violates Rust's safety guarantees.

rkyv: Insufficient archive validation can cause out-of-bounds reads in archives containing Rc/Arc

RUSTSEC-2026-0235

Shared pointer validation keyed already-validated pointees by their address and type, but did not include pointer metadata. For unsized pointees, an archive could therefore contain multiple Rc, Arc, or weak pointers that shared a data address but used different metadata, such as different slice lengths.

Once the first pointer had been validated, later pointers to the same address skipped pointee validation. The safe checked rkyv::access API could consequently return a slice with a forged length, allowing safe indexing to read out of bounds. The same validation bypass was reachable through checked deserialization with rkyv::from_bytes.

Version 0.8.17 includes pointer metadata in shared pointer validation and rejects conflicting metadata. The 0.7 series is also affected but is no longer supported by upstream. Users who process untrusted archives should upgrade to 0.8.17 or later.