1
0
mirror of https://github.com/openbsd/src.git synced 2026-06-18 07:13:36 +02:00

Upstream patch for HTTP-Tiny perl dist

* CVE-2026-7010
    https://lists.security.metacpan.org/cve-announce/msg/39952806/
    HTTP::Tiny versions before 0.093 for Perl do not validate CRLF in
    HTTP request lines or control field header values
This commit is contained in:
afresh1
2026-06-09 01:36:51 +00:00
parent 170dab4126
commit 38d736fcba
@@ -1381,6 +1381,8 @@ sub write_header_lines {
my $field_name = $HeaderCase{$k};
my $v = $headers->{$k};
for (ref $v eq 'ARRAY' ? @$v : $v) {
die(qq/Invalid HTTP header field value ($field_name): / . $Printable->($_). "\n")
unless $_ eq '' || /\A $Field_Content \z/xo;
$_ = '' unless defined $_;
$buf .= "$field_name: $_\x0D\x0A";
}
@@ -1572,6 +1574,12 @@ sub write_request_header {
@_ == 5 || die(q/Usage: $handle->write_request_header(method, request_uri, headers, header_case)/ . "\n");
my ($self, $method, $request_uri, $headers, $header_case) = @_;
die (q/Invalid characters in Request-URI /. $Printable->($request_uri). "\n")
if $request_uri =~ /[\x00-\x20\x7F]/;
die (q/Invalid characters in Method /. $Printable->($method). "\n")
if $method =~ /[\x00-\x20\x7F]/;
return $self->write_header_lines($headers, $header_case, "$method $request_uri HTTP/1.1\x0D\x0A");
}