CVE-2020-15692
Security update for nim
In Nim 1.2.4, the standard library browsers mishandles the URL argument to browsers.openDefaultBrowser. This argument can be a local file path that will be opened in the default explorer. An attacker can pass one argument to the underlying open command to execute arbitrary registered system commands.
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
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
9.8
In Nim 1.2.4, the standard library browsers mishandles the URL argument to browsers.openDefaultBrowser. This argument can be a local file path that will be opened in the default explorer. An attacker can pass one argument to the underlying open command to execute arbitrary registered system commands.
- Record
CVE-2020-15692- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 10.0 High
AV:N/AC:L/Au:N/C:C/I:C/A:C - Weakness
- CWE-88
- Updated
- 2026-11-02
CVE List No score
In Nim 1.2.4, the standard library browsers mishandles the URL argument to browsers.openDefaultBrowser. This argument can be a local file path that will be opened in the default explorer. An attacker can pass one argument to the underlying open command to execute arbitrary registered system commands.
- Record
CVE-2020-15692- Updated
- 2026-11-02
EUVDEUVD-2020-7679 No score
In Nim 1.2.4, the standard library browsers mishandles the URL argument to browsers.openDefaultBrowser. This argument can be a local file path that will be opened in the default explorer. An attacker can pass one argument to the underlying open command to execute arbitrary registered system commands.
- Record
EUVD-2020-7679- Updated
- 2026-11-03
OSV
9.8
In Nim 1.2.4, the standard library browsers mishandles the URL argument to browsers.openDefaultBrowser. This argument can be a local file path that will be opened in the default explorer. An attacker can pass one argument to the underlying open command to execute arbitrary registered system commands.
- Record
CVE-2020-15692- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2020-15692
9.8
In Nim 1.2.4, the standard library browsers mishandles the URL argument to browsers.openDefaultBrowser. This argument can be a local file path that will be opened in the default explorer. An attacker can pass one argument to the underlying open command to execute arbitrary registered system commands.
- Record
DEBIAN-CVE-2020-15692- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2020-15692
9.8
In Nim 1.2.4, the standard library browsers mishandles the URL argument to browsers.openDefaultBrowser. This argument can be a local file path that will be opened in the default explorer. An attacker can pass one argument to the underlying open command to execute arbitrary registered system commands.
- Record
UBUNTU-CVE-2020-15692- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - 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
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2020-15692 is a critical vulnerability (CVSS 9.8) 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 4.21%, the 90th percentile. Fixed in nim 1.2.6-1.
References
github.com/nim-lang/Nim/blob/dc5a40f3f39c6ea672e6dc6aca7f8118a69dda99/lib/pure/browsers.nim
nim-lang.org/blog/2020/07/30/versions-126-and-108-released.html
openwall.com/lists/oss-security/2021/02/04/1
consensys.net/diligence/vulnerabilities/nim-browsers-argument-injection
security-tracker.debian.org/tracker/CVE-2020-15692
ubuntu.com/security/CVE-2020-15692
Show 21 moreShow less
cve.org/CVERecord?id=CVE-2020-15692
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.