You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The identified bug is a panic in the Sway compiler's semantic analysis module, specifically in the implementation of trait declarations. This occurs due to an unexpected None value being unwrapped during the type checking of trait implementations. If exploited in production, this bug could cause compiler crashes when processing certain trait implementations, potentially preventing developers from compiling valid Sway code. The bug highlights a need for more robust error handling in the compiler's trait implementation processing.
if type_decl.ty.clone() is None, it will cause unexpected unwarp panic like:
thread 'main' panicked at sway-core/src/semantic_analysis/ast_node/declaration/impl_trait.rs:817:47:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Possible fix
A possible fix is checking whether type_decl.ty is None .
While this bug doesn't directly put funds at risk, its potential to introduce vulnerabilities and disrupt the development process makes it a severe issue. The compiler is a critical component of the blockchain development stack, and its reliability is paramount for the security and success of the entire ecosystem. Addressing this vulnerability is crucial to maintain the integrity and trustworthiness of the Fuel platform.
Proof of concept
Step 1
forc new poc
Step 2
write minimized code to main.sw
thread 'main' panicked at sway-core/src/semantic_analysis/ast_node/declaration/impl_trait.rs:817:47:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
The text was updated successfully, but these errors were encountered:
From https://bugs.immunefi.com/dashboard/submission/33286
Brief/Intro
The identified bug is a panic in the Sway compiler's semantic analysis module, specifically in the implementation of trait declarations. This occurs due to an unexpected None value being unwrapped during the type checking of trait implementations. If exploited in production, this bug could cause compiler crashes when processing certain trait implementations, potentially preventing developers from compiling valid Sway code. The bug highlights a need for more robust error handling in the compiler's trait implementation processing.
Vulnerability Details
The bug is in type_check_trait_implementation at
sway/sway-core/src/semantic_analysis/ast_node/declaration/impl_trait.rs
Line 817 in e1b1c2b
sway/sway-core/src/semantic_analysis/ast_node/declaration/impl_trait.rs
Line 825 in e1b1c2b
if type_decl.ty.clone() is None, it will cause unexpected unwarp panic like:
Possible fix
A possible fix is checking whether type_decl.ty is None .
Impact Details
While this bug doesn't directly put funds at risk, its potential to introduce vulnerabilities and disrupt the development process makes it a severe issue. The compiler is a critical component of the blockchain development stack, and its reliability is paramount for the security and success of the entire ecosystem. Addressing this vulnerability is crucial to maintain the integrity and trustworthiness of the Fuel platform.
Proof of concept
Step 1
forc new poc
Step 2
write minimized code to main.sw
Step3
forc build
It return panic like:
The text was updated successfully, but these errors were encountered: