CVE-2022-31081
Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') in HTTP::Daemon
HTTP::Daemon is a simple http server class written in perl. Versions prior to 6.15 are subject to a vulnerability which could potentially be exploited to gain privileged access to APIs or poison intermediate caches. It is uncertain how large the risks are, most Perl based applications are served on top of Nginx or Apache, not on the HTTP::Daemon. This library is commonly used for local development and tests. Users are advised to update to resolve this issue. Users unable to upgrade may add additional request handling logic as a mitigation. After calling my $rqst = $conn->get_request() one could inspect the returned HTTP::Request object. Querying the 'Content-Length' (my $cl = $rqst->header('Content-Length')) will show any abnormalities that should be dealt with by a 400 response. Expected strings of 'Content-Length' SHOULD consist of either a single non-negative integer, or, a comma separated repetition of that number. (that is 42 or 42, 42, 42). Anything else MUST be rejected.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
7.3
Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') in HTTP::Daemon
HTTP::Daemon is a simple http server class written in perl. Versions prior to 6.15 are subject to a vulnerability which could potentially be exploited to gain privileged access to APIs or poison intermediate caches. It is uncertain how large the risks are, most Perl based applications are served on top of Nginx or Apache, not on the HTTP::Daemon. This library is commonly used for local development and tests. Users are advised to update to resolve this issue. Users unable to upgrade may add additional request handling logic as a mitigation. After calling my $rqst = $conn->get_request() one could inspect the returned HTTP::Request object. Querying the 'Content-Length' (my $cl = $rqst->header('Content-Length')) will show any abnormalities that should be dealt with by a 400 response. Expected strings of 'Content-Length' SHOULD consist of either a single non-negative integer, or, a comma separated repetition of that number. (that is 42 or 42, 42, 42). Anything else MUST be rejected.
- Record
CVE-2022-31081- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-444
- Updated
- 2026-11-02
EUVDEUVD-2022-52739
7.3
HTTP::Daemon is a simple http server class written in perl. Versions prior to 6.15 are subject to a vulnerability which could potentially be exploited to gain privileged access to APIs or poison intermediate caches. It is uncertain how large the risks are, most Perl based applications are served on top of Nginx or Apache, not on the HTTP::Daemon. This library is commonly used for local development and tests. Users are advised to update to resolve this issue. Users unable to upgrade may add additional request handling logic as a mitigation. After calling my $rqst = $conn->get_request() one could inspect the returned HTTP::Request object. Querying the 'Content-Length' (my $cl = $rqst->header('Content-Length')) will show any abnormalities that should be dealt with by a 400 response. Expected strings of 'Content-Length' SHOULD consist of either a single non-negative integer, or, a comma separated repetition of that number. (that is 42 or 42, 42, 42). Anything else MUST be rejected.
- Record
EUVD-2022-52739- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
NVD
7.3
HTTP::Daemon is a simple http server class written in perl. Versions prior to 6.15 are subject to a vulnerability which could potentially be exploited to gain privileged access to APIs or poison intermediate caches. It is uncertain how large the risks are, most Perl based applications are served on top of Nginx or Apache, not on the HTTP::Daemon. This library is commonly used for local development and tests. Users are advised to update to resolve this issue. Users unable to upgrade may add additional request handling logic as a mitigation. After calling my $rqst = $conn->get_request() one could inspect the returned HTTP::Request object. Querying the 'Content-Length' (my $cl = $rqst->header('Content-Length')) will show any abnormalities that should be dealt with by a 400 response. Expected strings of 'Content-Length' SHOULD consist of either a single non-negative integer, or, a comma separated repetition of that number. (that is 42 or 42, 42, 42). Anything else MUST be rejected.
- Record
CVE-2022-31081- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N - CVSS 2.0
- 6.4 Medium
AV:N/AC:L/Au:N/C:P/I:P/A:N - Weakness
- CWE-444
- Updated
- 2026-11-02
OSVBELL-CVE-2022-31081
6.5
- Record
BELL-CVE-2022-31081- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
OSV
7.3
Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') in HTTP::Daemon
HTTP::Daemon is a simple http server class written in perl. Versions prior to 6.15 are subject to a vulnerability which could potentially be exploited to gain privileged access to APIs or poison intermediate caches. It is uncertain how large the risks are, most Perl based applications are served on top of Nginx or Apache, not on the HTTP::Daemon. This library is commonly used for local development and tests. Users are advised to update to resolve this issue. Users unable to upgrade may add additional request handling logic as a mitigation. After calling my $rqst = $conn->get_request() one could inspect the returned HTTP::Request object. Querying the 'Content-Length' (my $cl = $rqst->header('Content-Length')) will show any abnormalities that should be dealt with by a 400 response. Expected strings of 'Content-Length' SHOULD consist of either a single non-negative integer, or, a comma separated repetition of that number. (that is 42 or 42, 42, 42). Anything else MUST be rejected.
- Record
CVE-2022-31081- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-444
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2022-31081
6.5
HTTP::Daemon is a simple http server class written in perl. Versions prior to 6.15 are subject to a vulnerability which could potentially be exploited to gain privileged access to APIs or poison intermediate caches. It is uncertain how large the risks are, most Perl based applications are served on top of Nginx or Apache, not on the HTTP::Daemon. This library is commonly used for local development and tests. Users are advised to update to resolve this issue. Users unable to upgrade may add additional request handling logic as a mitigation. After calling my $rqst = $conn->get_request() one could inspect the returned HTTP::Request object. Querying the 'Content-Length' (my $cl = $rqst->header('Content-Length')) will show any abnormalities that should be dealt with by a 400 response. Expected strings of 'Content-Length' SHOULD consist of either a single non-negative integer, or, a comma separated repetition of that number. (that is 42 or 42, 42, 42). Anything else MUST be rejected.
- Record
UBUNTU-CVE-2022-31081- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N - CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
Show 7 moreShow less
OSVDEBIAN-CVE-2022-31081 No score
HTTP::Daemon is a simple http server class written in perl. Versions prior to 6.15 are subject to a vulnerability which could potentially be exploited to gain privileged access to APIs or poison intermediate caches. It is uncertain how large the risks are, most Perl based applications are served on top of Nginx or Apache, not on the HTTP::Daemon. This library is commonly used for local development and tests. Users are advised to update to resolve this issue. Users unable to upgrade may add additional request handling logic as a mitigation. After calling my $rqst = $conn->get_request() one could inspect the returned HTTP::Request object. Querying the 'Content-Length' (my $cl = $rqst->header('Content-Length')) will show any abnormalities that should be dealt with by a 400 response. Expected strings of 'Content-Length' SHOULD consist of either a single non-negative integer, or, a comma separated repetition of that number. (that is 42 or 42, 42, 42). Anything else MUST be rejected.
- Record
DEBIAN-CVE-2022-31081- Updated
- 2026-11-03
OSVMGASA-2022-0349 No score
Updated perl-HTTP-Daemon packages fix security vulnerability
Request smuggling in HTTP::Daemon (CVE-2022-31081)
- Record
MGASA-2022-0349- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:12216-1 No score
perl-HTTP-Daemon-6.14-2.1 on GA media
These are all security issues fixed in the perl-HTTP-Daemon-6.14-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:12216-1- Updated
- 2026-11-02
OSVSUSE-SU-2022:2872-1 No score
Security update for perl-HTTP-Daemon
This update for perl-HTTP-Daemon fixes the following issues:
- CVE-2022-31081: Fixed request smuggling in HTTP::Daemon (bsc#1201157).
- Record
SUSE-SU-2022:2872-1- Updated
- 2026-11-02
OSVSUSE-SU-2022:2874-1 No score
Security update for perl-HTTP-Daemon
This update for perl-HTTP-Daemon fixes the following issues:
- CVE-2022-31081: Fixed request smuggling in HTTP::Daemon (bsc#1201157).
- Record
SUSE-SU-2022:2874-1- Updated
- 2026-11-02
OSVUSN-5520-1 No score
libhttp-daemon-perl vulnerability
It was discovered that HTTP-Daemon incorrectly handled certain crafted requests. A remote attacker could possibly use this issue to perform an HTTP Request Smuggling attack.
- Record
USN-5520-1- Updated
- 2026-11-02
OSVUSN-5520-2 No score
libhttp-daemon-perl vulnerability
USN-5520-1 fixed a vulnerability in HTTP-Daemon. This update provides the corresponding update for Ubuntu 14.04 ESM and Ubuntu 16.04 ESM.
Original advisory details:
It was discovered that HTTP-Daemon incorrectly handled certain crafted requests. A remote attacker could possibly use this issue to perform an HTTP Request Smuggling attack.
- Record
USN-5520-2- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
perl-http-daemonAlpaquita:23 |
6.14-r0 up to 6.14-r1 | 6.14-r1 |
perl-http-daemonAlpaquita:stream |
6.14-r0 up to 6.16-r0 | 6.16-r0 |
libhttp-daemon-perlDebian:12 |
before 6.14-1.1 | 6.14-1.1 |
libhttp-daemon-perlDebian:13 |
before 6.14-1.1 | 6.14-1.1 |
libhttp-daemon-perlDebian:14 |
before 6.14-1.1 | 6.14-1.1 |
libhttp-daemon-perlDebian:10 |
before 6.01-3+deb10u1, plus listed versions 6.01-3 |
6.01-3+deb10u1 |
perl-HTTP-DaemonMageia:8 |
before 6.140.0-3.mga8 | 6.140.0-3.mga8 |
perl-HTTP-DaemonSUSE:Linux Enterprise Server 12 SP5 |
before 6.01-9.5.1 | 6.01-9.5.1 |
perl-HTTP-DaemonSUSE:Linux Enterprise Server for SAP Applications 12 SP5 |
before 6.01-9.5.1 | 6.01-9.5.1 |
perl-HTTP-DaemonSUSE:Linux Enterprise Module for Basesystem 15 SP3 |
before 6.01-150000.3.5.1 | 6.01-150000.3.5.1 |
Show 9 moreShow less
| Package | Affected | Fixed |
|---|---|---|
perl-HTTP-DaemonSUSE:Linux Enterprise Module for Basesystem 15 SP4 |
before 6.01-150000.3.5.1 | 6.01-150000.3.5.1 |
perl-HTTP-DaemonopenSUSE:Leap 15.3 |
before 6.01-150000.3.5.1 | 6.01-150000.3.5.1 |
perl-HTTP-DaemonopenSUSE:Leap 15.4 |
before 6.01-150000.3.5.1 | 6.01-150000.3.5.1 |
libhttp-daemon-perlUbuntu:Pro:14.04:LTS |
before 6.01-1ubuntu0.14.04~esm1, plus listed versions 6.01-1 |
6.01-1ubuntu0.14.04~esm1 |
libhttp-daemon-perlUbuntu:Pro:16.04:LTS |
before 6.01-1ubuntu0.16.04~esm1, plus listed versions 6.01-1 |
6.01-1ubuntu0.16.04~esm1 |
libhttp-daemon-perlUbuntu:18.04:LTS |
before 6.01-1ubuntu0.1, plus listed versions 6.01-1 |
6.01-1ubuntu0.1 |
libhttp-daemon-perlUbuntu:20.04:LTS |
before 6.06-1ubuntu0.1, plus listed versions 6.04-16.06-1 |
6.06-1ubuntu0.1 |
libhttp-daemon-perlUbuntu:22.04:LTS |
before 6.13-1ubuntu0.1, plus listed versions 6.12-16.13-1 |
6.13-1ubuntu0.1 |
perl-HTTP-DaemonopenSUSE:Tumbleweed |
before 6.14-2.1 | 6.14-2.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2022-31081 is a high vulnerability (CVSS 7.3) in Debian Linux, published June 27, 2022. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.35%, the 83rd percentile. Fixed in perl-http-daemon 6.14-r1.
References
portswigger.net/research/http-desync-attacks-request-smuggling-reborn
github.com/libwww-perl/HTTP-Daemon/security/advisories/GHSA-cg8c-pxmv-w7cf
github.com/libwww-perl/HTTP-Daemon/commit/8dc5269d59e2d5d9eb1647d82c449ccd880f7fd0
github.com/libwww-perl/HTTP-Daemon/commit/e84475de51d6fd7b29354a997413472a99db70b2
cwe.mitre.org/data/definitions/444.html
datatracker.ietf.org/doc/html/rfc7230
Show 19 moreShow less
metacpan.org/release/HTTP-Daemon
lists.debian.org/debian-lts-announce/2022/09/msg00038.html
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/7U4XEPZ5Q3LNOQF3E6EXFWVSEXU5IZ6T
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/XQBW2D43TDNYX4R2YBTNNZDBNZ45DINN
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/ECJ4ZPBQWD3B2CD6RRIVMENB5KUOJ3LC
docs.bell-sw.com/security/cves/CVE-2022-31081
github.com/CVEProject/cvelistV5/tree/main/cves/2022/31xxx/CVE-2022-31081.json
nvd.nist.gov/vuln/detail/CVE-2022-31081
security-tracker.debian.org/tracker/CVE-2022-31081
advisories.mageia.org/MGASA-2022-0349.html
bugs.mageia.org/show_bug.cgi?id=30634
ubuntu.com/security/notices/USN-5520-1
suse.com/support/update/announcement/2022/suse-su-20222872-1
bugzilla.suse.com/1201157
suse.com/security/cve/CVE-2022-31081
suse.com/support/update/announcement/2022/suse-su-20222874-1
ubuntu.com/security/CVE-2022-31081
ubuntu.com/security/notices/USN-5520-2
cve.org/CVERecord?id=CVE-2022-31081