Skip to content

Improper Neutralization of CRLF Sequences in HTTP Headers in Jooby ('HTTP Response Splitting)

Critical severity GitHub Reviewed Published Apr 2, 2020 in jooby-project/jooby • Updated Feb 1, 2023

Package

maven io.jooby:jooby-netty (Maven)

Affected versions

< 2.2.1

Patched versions

2.2.1

Description

Impact

  • Cross Site Scripting
  • Cache Poisoning
  • Page Hijacking

Patches

This was fixed in version 2.2.1.

Workarounds

If you are unable to update, ensure that user supplied data isn't able to flow to HTTP headers. If it does, pre-sanitize for CRLF characters.

References

CWE-113: Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Response Splitting')

I've been poking at libraries to see if they are vulnerable to HTTP Response Splitting and Jooby is my third case of finding this vulnerability.

Root Cause

This roots cause back to this line in the Jooby codebase:

https://github.com/jooby-project/jooby/blob/93cfc80aa20c188f71a442ea7a1827da380e1c27/modules/jooby-netty/src/main/java/io/jooby/internal/netty/NettyContext.java#L102

The DefaultHttpHeaders takes a parameter validate which, when true (as it is for the no-arg constructor) validates that the header isn't being abused to do HTTP Response Splitting.

Reported By

This vulnerability was reported by @JLLeitschuh (Twitter)

For more information

If you have any questions or comments about this advisory:

References

@jknack jknack published to jooby-project/jooby Apr 2, 2020
Reviewed Apr 2, 2020
Published to the GitHub Advisory Database Apr 3, 2020
Published by the National Vulnerability Database Apr 6, 2020
Last updated Feb 1, 2023

Severity

Critical
9.8
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CVE ID

CVE-2020-7622

GHSA ID

GHSA-gv3v-92v6-m48j

Source code

No known source code

Credits

Checking history
See something to contribute? Suggest improvements for this vulnerability.