CVE-2020-15694
In Nim 1.2.4, the standard library httpClient fails to properly validate the server response. For...
CVE-2020-15694 is a high vulnerability (CVSS 7.5) in Nim-lang Nim, published August 14, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.33%, the 83rd percentile. Fixed in nim 1.2.6-1.
In Nim 1.2.4, the standard library httpClient fails to properly validate the server response. For example, httpClient.get().contentLength() does not raise any error if a malicious server provides a negative Content-Length.
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
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
7.5
In Nim 1.2.4, the standard library httpClient fails to properly validate the server response. For example, httpClient.get().contentLength() does not raise any error if a malicious server provides a negative Content-Length.
- Record
CVE-2020-15694- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:P/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
CVE List No score
In Nim 1.2.4, the standard library httpClient fails to properly validate the server response. For example, httpClient.get().contentLength() does not raise any error if a malicious server provides a negative Content-Length.
- Record
CVE-2020-15694- Updated
- 2026-11-02
EUVDEUVD-2020-7681 No score
In Nim 1.2.4, the standard library httpClient fails to properly validate the server response. For example, httpClient.get().contentLength() does not raise any error if a malicious server provides a negative Content-Length.
- Record
EUVD-2020-7681- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-mwjr-9xqh-r2f5
7.5
In Nim 1.2.4, the standard library httpClient fails to properly validate the server response. For...
In Nim 1.2.4, the standard library httpClient fails to properly validate the server response. For example, httpClient.get().contentLength() does not raise any error if a malicious server provides a negative Content-Length.
- Record
GHSA-mwjr-9xqh-r2f5- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
OSV
7.5
In Nim 1.2.4, the standard library httpClient fails to properly validate the server response. For example, httpClient.get().contentLength() does not raise any error if a malicious server provides a negative Content-Length.
- Record
CVE-2020-15694- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2020-15694
7.5
In Nim 1.2.4, the standard library httpClient fails to properly validate the server response. For example, httpClient.get().contentLength() does not raise any error if a malicious server provides a negative Content-Length.
- Record
DEBIAN-CVE-2020-15694- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
Show 4 moreShow less
OSVUBUNTU-CVE-2020-15694
7.5
In Nim 1.2.4, the standard library httpClient fails to properly validate the server response. For example, httpClient.get().contentLength() does not raise any error if a malicious server provides a negative Content-Length.
- Record
UBUNTU-CVE-2020-15694- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2022:10095-1 No score
Security update for nim
This update for nim fixes the following issues:
Includes upstream security fixes for:
- (boo#1175333, CVE-2020-15693) httpClient is vulnerable to a CR-LF injection
- (boo#1175334, CVE-2020-15692) mishandle of argument to browsers.openDefaultBrowser
- (boo#1175332, CVE-2020-15694) httpClient.get().contentLength() fails to properly validate the server response
- (boo#1192712, CVE-2021-41259) null byte accepted in getContent function, leading to URI validation bypass
- (boo#1185948, CVE-2021-29495) stdlib httpClient does not validate peer certificates by default
- (boo#1185085, CVE-2021-21374) Improper verification of the SSL/TLS certificate
- (boo#1185084, CVE-2021-21373) 'nimble refresh' falls back to a non-TLS URL in case of error
- (boo#1185083, CVE-2021-21372) doCmd can be leveraged to execute arbitrary commands
- (boo#1181705, CVE-2020-15690) Standard library asyncftpclient lacks a check for newline character
Following nim tools now work as expected:
- nim_dbg is now installed.
- nim-gdb can be successfully launched as it finds and loads nim-gdb.py correctly under gdb.
- nimble package manager stores package information per user.
- compiler package can be found and used, as it may be required by other packages.
Update to 1.6.6
- standard library use consistent styles for variable names so it can be used in projects which force a consistent style with --styleCheck:usages option.
- ARC/ORC are now considerably faster at method dispatching, bringing its performance back on the level of the refc memory management.
- Full changelog: https://nim-lang.org/blog/2022/05/05/version-166-released.html
- Previous updates and changelogs:
- 1.6.4: https://nim-lang.org/blog/2022/02/08/version-164-released.html
- 1.6.2: https://nim-lang.org/blog/2021/12/17/version-162-released.html
- 1.6.0: https://nim-lang.org/blog/2021/10/19/version-160-released.html
- 1.4.8: https://nim-lang.org/blog/2021/05/25/version-148-released.html
- 1.4.6: https://nim-lang.org/blog/2021/04/15/versions-146-and-1212-released.html
- 1.4.4: https://nim-lang.org/blog/2021/02/23/versions-144-and-1210-released.html
- 1.4.2: https://nim-lang.org/blog/2020/12/01/version-142-released.html
- 1.4.0: https://nim-lang.org/blog/2020/10/16/version-140-released.html
Update to 1.2.16
- oids: switch from PRNG to random module
- nimc.rst: fix table markup
- nimRawSetjmp: support Windows
- correctly enable chronos
- bigints are not supposed to work on 1.2.x
- disable nimpy
- misc bugfixes
- fixes a 'mixin' statement handling regression [backport:1.2
Update to version 1.2.12
- Fixed GC crash resulting from inlining of the memory allocation procs
- Fixed “incorrect raises effect for $(NimNode)” (#17454)
- from version 1.2.10
- Fixed “JS backend doesn’t handle float->int type conversion “ (#8404)
- Fixed “The “try except” not work when the “OSError: Too many open files” error occurs!” (#15925)
- Fixed “Nim emits #line 0 C preprocessor directives with –debugger:native, with ICE in gcc-10” (#15942)
- Fixed “tfuturevar fails when activated” (#9695)
- Fixed “nre.escapeRe is not gcsafe” (#16103)
- Fixed ““Error: internal error: genRecordFieldAux” - in the “version-1-4” branch” (#16069)
- Fixed “-d:fulldebug switch does not compile with gc:arc” (#16214)
- Fixed “osLastError may randomly raise defect and crash” (#16359)
- Fixed “generic importc proc’s don’t work (breaking lots of vmops procs for js)” (#16428)
- Fixed “Concept: codegen ignores parameter passing” (#16897)
- Fixed “{.push exportc.} interacts with anonymous functions” (#16967)
- Fixed “memory allocation during {.global.} init breaks GC” (#17085)
- Fixed 'Nimble arbitrary code execution for specially crafted package metadata'
- https://github.com/nim-lang/security/security/advisories/GHSA-rg9f-w24h-962p
- (boo#1185083, CVE-2021-21372)
- Fixed 'Nimble falls back to…
- Record
openSUSE-SU-2022:10095-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2022:10101-1 No score
Security update for nim
This update for nim fixes the following issues:
Includes upstream security fixes for:
- (boo#1175333, CVE-2020-15693) httpClient is vulnerable to a CR-LF injection
- (boo#1175334, CVE-2020-15692) mishandle of argument to browsers.openDefaultBrowser
- (boo#1175332, CVE-2020-15694) httpClient.get().contentLength() fails to properly validate the server response
- (boo#1192712, CVE-2021-41259) null byte accepted in getContent function, leading to URI validation bypass
- (boo#1185948, CVE-2021-29495) stdlib httpClient does not validate peer certificates by default
- (boo#1185085, CVE-2021-21374) Improper verification of the SSL/TLS certificate
- (boo#1185084, CVE-2021-21373) 'nimble refresh' falls back to a non-TLS URL in case of error
- (boo#1185083, CVE-2021-21372) doCmd can be leveraged to execute arbitrary commands
- (boo#1181705, CVE-2020-15690) Standard library asyncftpclient lacks a check for newline character
Update to 1.6.6
- standard library use consistent styles for variable names so it can be used in projects which force a consistent style with --styleCheck:usages option.
- ARC/ORC are now considerably faster at method dispatching, bringing its performance back on the level of the refc memory management.
- Full changelog: https://nim-lang.org/blog/2022/05/05/version-166-released.html
- Previous updates and changelogs:
- 1.6.4: https://nim-lang.org/blog/2022/02/08/version-164-released.html
- 1.6.2: https://nim-lang.org/blog/2021/12/17/version-162-released.html
- 1.6.0: https://nim-lang.org/blog/2021/10/19/version-160-released.html
- 1.4.8: https://nim-lang.org/blog/2021/05/25/version-148-released.html
- 1.4.6: https://nim-lang.org/blog/2021/04/15/versions-146-and-1212-released.html
- 1.4.4: https://nim-lang.org/blog/2021/02/23/versions-144-and-1210-released.html
- 1.4.2: https://nim-lang.org/blog/2020/12/01/version-142-released.html
- 1.4.0: https://nim-lang.org/blog/2020/10/16/version-140-released.html
update to 1.2.16
- oids: switch from PRNG to random module
- nimc.rst: fix table markup
- nimRawSetjmp: support Windows
- correctly enable chronos
- bigints are not supposed to work on 1.2.x
- disable nimpy
- misc bugfixes
- fixes a 'mixin' statement handling regression [backport:1.2
- Record
openSUSE-SU-2022:10101-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:12253-1 No score
nim-1.6.6-3.1 on GA media
These are all security issues fixed in the nim-1.6.6-3.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:12253-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
nimDebian:12 |
before 1.2.6-1 | 1.2.6-1 |
nimDebian:14 |
before 1.2.6-1, plus listed versions 0.11.2+dfsg1-10.11.2+dfsg1-20.11.2+dfsg1-30.11.2+dfsg1-40.12.0-1 Show 45 moreShow less0.12.0-20.13.0-10.14.2-10.15.0-10.15.0-20.15.0-30.15.2-10.15.2-20.16.0-10.17.0-10.17.0-20.17.0-2~bpo9+10.17.2-10.18.0-10.18.0-20.19.0-10.19.2-10.19.2-20.19.4-10.19.6-10.19.6-20.20.0-10.20.0-20.20.2-11.0.0-11.0.0-1~bpo10+11.0.2-11.0.2-1~bpo10+11.0.2~a-11.0.2~b-11.0.2~rc-11.0.3~rc-11.0.4-11.0.4-1~bpo10+11.0.5~rc-11.0.6-11.2.0-11.2.0~rc-11.2.0~rc2-11.2.0~rc3-11.2.1~rc1-11.2.1~rc2-11.2.2-11.2.4-11.2.6~rc1-1 |
1.2.6-1 |
nimUbuntu:16.04:LTS |
All versions, plus listed versions 0.11.2+dfsg1-40.12.0-2 |
None known |
nimUbuntu:18.04:LTS |
All versions, plus listed versions 0.17.2-1ubuntu10.17.2-1ubuntu2 |
None known |
nimUbuntu:20.04:LTS |
All versions, plus listed versions 0.20.2-11.0.2-11.0.3~rc-11.0.4-11.0.6-1 |
None known |
nimSUSE:Package Hub 15 SP3 |
before 1.6.6-bp153.2.3.1 | 1.6.6-bp153.2.3.1 |
nimopenSUSE:Leap 15.3 |
before 1.6.6-bp153.2.3.1 | 1.6.6-bp153.2.3.1 |
nimSUSE:Package Hub 15 SP4 |
before 1.6.6-bp154.2.3.1 | 1.6.6-bp154.2.3.1 |
nimopenSUSE:Leap 15.4 |
before 1.6.6-bp154.2.3.1 | 1.6.6-bp154.2.3.1 |
nimopenSUSE:Tumbleweed |
before 1.6.6-3.1 | 1.6.6-3.1 |
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-03 | aliases | EUVD |
| 2026-11-02 | created | CVE List, GitHub Advisories, NVD, OSV |
References
github.com/nim-lang/Nim/blob/dc5a40f3f39c6ea672e6dc6aca7f8118a69dda99/lib/pure/httpclient.nim
nim-lang.org/blog/2020/07/30/versions-126-and-108-released.html
openwall.com/lists/oss-security/2021/02/04/2
consensys.net/diligence/vulnerabilities/nim-httpclient-header-crlf-injection
nvd.nist.gov/vuln/detail/CVE-2020-15694
github.com/advisories/GHSA-mwjr-9xqh-r2f5
Show 23 moreShow less
security-tracker.debian.org/tracker/CVE-2020-15694
ubuntu.com/security/CVE-2020-15694
cve.org/CVERecord?id=CVE-2020-15694
lists.opensuse.org/archives/list/[email protected]/thread/HM5F2H5AWO4WRQSTOWMODGKMXAHHBVRH
bugzilla.suse.com/1175332
bugzilla.suse.com/1175333
bugzilla.suse.com/1175334
bugzilla.suse.com/1181705
bugzilla.suse.com/1185083
bugzilla.suse.com/1185084
bugzilla.suse.com/1185085
bugzilla.suse.com/1185948
bugzilla.suse.com/1192712
suse.com/security/cve/CVE-2020-15690
suse.com/security/cve/CVE-2020-15692
suse.com/security/cve/CVE-2020-15693
suse.com/security/cve/CVE-2020-15694
suse.com/security/cve/CVE-2021-21372
suse.com/security/cve/CVE-2021-21373
suse.com/security/cve/CVE-2021-21374
suse.com/security/cve/CVE-2021-29495
suse.com/security/cve/CVE-2021-41259
lists.opensuse.org/archives/list/[email protected]/thread/SNDISR45BBTIWW5MDTIQOSRHOEV3XUKF
Left out here: the rest of 1 source description. The JSON record has them.