Miggo Logo

CVE-2020-35901: Use-after-free in actix-http

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.59624%
Published
8/25/2021
Updated
1/11/2023
KEV Status
No
Technology
TechnologyRust

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
actix-httprust< 2.0.02.0.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stemmed from improper handling of pinned data in async streams. The core issue was identified in the MessageBody trait's poll_next method signature which didn't use Pin<&mut Self>, as required for proper pinning in async contexts. This is confirmed by both the advisory's description of the fix ('making poll_next() function accept Pin<&mut Self>') and the reproduction example in GitHub issue #1321 that demonstrated UB through improper polling after replacement. The function's signature directly controlled the memory safety guarantees around the BodyStream.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

*n issu* w*s *is*ov*r** in t** **tix-*ttp *r*t* ***or* *.*.*-*lp**.* *or Rust. T**r* is * us*-**t*r-*r** in *o*yStr**m.

Reasoning

T** vuln*r**ility st*mm** *rom improp*r **n*lin* o* pinn** **t* in *syn* str**ms. T** *or* issu* w*s i**nti*i** in t** M*ss****o*y tr*it's poll_n*xt m*t*o* si*n*tur* w*i** *i*n't us* Pin<&mut S*l*>, *s r*quir** *or prop*r pinnin* in *syn* *ont*xts. T