CVE-2021-35331
** DISPUTED ** In Tcl 8.6.11, a format string vulnerability in nmakehlp.c might allow code...
In Tcl 8.6.11, a format string vulnerability in nmakehlp.c might allow code execution via a crafted file. NOTE: multiple third parties dispute the significance of this finding
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
7.8
In Tcl 8.6.11, a format string vulnerability in nmakehlp.c might allow code execution via a crafted file. NOTE: multiple third parties dispute the significance of this finding
- Record
CVE-2021-35331- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - CVSS 2.0
- 6.8 Medium
AV:N/AC:M/Au:N/C:P/I:P/A:P - Weakness
- CWE-134
- Updated
- 2026-11-02
CVE List No score
In Tcl 8.6.11, a format string vulnerability in nmakehlp.c might allow code execution via a crafted file. NOTE: multiple third parties dispute the significance of this finding
- Record
CVE-2021-35331- Updated
- 2026-11-02
EUVDEUVD-2021-21974 No score
In Tcl 8.6.11, a format string vulnerability in nmakehlp.c might allow code execution via a crafted file. NOTE: multiple third parties dispute the significance of this finding
- Record
EUVD-2021-21974- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-539q-24vg-qfm4
7.8
** DISPUTED ** In Tcl 8.6.11, a format string vulnerability in nmakehlp.c might allow code...
** DISPUTED ** In Tcl 8.6.11, a format string vulnerability in nmakehlp.c might allow code execution via a crated file. NOTE: multiple third parties dispute the significance of this finding.
- Record
GHSA-539q-24vg-qfm4- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-134
- Updated
- 2026-11-02
OSVBELL-CVE-2021-35331
7.8
CVE-2021-35331 does not affect BellSoft software
- Record
BELL-CVE-2021-35331- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSV
7.8
In Tcl 8.6.11, a format string vulnerability in nmakehlp.c might allow code execution via a crafted file. NOTE: multiple third parties dispute the significance of this finding
- Record
CVE-2021-35331- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 5 moreShow less
OSVDEBIAN-CVE-2021-35331
7.8
In Tcl 8.6.11, a format string vulnerability in nmakehlp.c might allow code execution via a crafted file. NOTE: multiple third parties dispute the significance of this finding
- Record
DEBIAN-CVE-2021-35331- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2022-1720
7.8
tcl security update
Tcl(Tool Command Language) provides a powerful platform for creating integration applications that tie together diverse applications, protocols, devices, and frameworks. When paired with the Tk toolkit, Tcl provides the fastest and most powerful way to create GUI applications that run on linux, Unix, and Mac OS X. Tcl can also be used for a variety of web-related tasks and for creating powerful command languages for applications.
Security Fix(es):
** DISPUTED ** In Tcl 8.6.11, a format string vulnerability in nmakehlp.c might allow code execution via a crafted file. NOTE: multiple third parties dispute the significance of this finding.(CVE-2021-35331)
- Record
OESA-2022-1720- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVROOT-OS-DEBIAN-12-CVE-2021-35331 No score
CVE-2021-35331 in tcl8.6 - Patched by Root
Root has patched CVE-2021-35331 in the tcl8.6 package for Root:Debian:12. Multiple fixed versions available.
- Record
ROOT-OS-DEBIAN-12-CVE-2021-35331- Updated
- 2026-11-02
OSVSUSE-FU-2022:0484-1 No score
Feature update for tcl and tk
This feature update for tcl and tk fix the following issues:
Update tcl and tk to version 8.6.12 (jsc#SLE-21015, jsc#SLE-23283):
- Move tcl.macros to /usr/lib/rpm/macros.d (bsc#1185662)
- Use FAT LTO objects in order to provide proper static library (bsc#1138797)
- Fix tcl build issues on s390 architecture (bnc#1085480)
- Fix tcl build issues caused by deprecated libieee in tcl configs (bsc#1179615, bsc#1181840)
- Whitelist PowerPC tests that are not needed (bsc#1072657)
- Add [combobox current] support 'end' index
- Add fixes in [text] bindings
- Add missing 'deferred clear code' support to GIF photo images
- Add new virtual event <<TkWorldChanged>>
- Add new keycodes: CodeInput, SingleCandidate, MultipleCandidate, PreviousCandidate
- Add new support for POSIX error: EILSEQ
- Add new command [tcl::unsupported::corotype]
- Add new command [tcl::unsupported::timerate] for performance testing
- Add new option -state to [ttk::scale]
- Add portable keycodes: OE, oe, Ydiaeresis
- Add support for backrefs in [array names -regexp]
- Add support for Unicode 14
- Disfavor Master/Slave terminology
- Enhance [oo::object] to acquire or lose a class identity dynamically
- Fix canvas rotated text overlap detection
- Fix canvas closed polylines yo fully honor -joinstyle
- Fix display of Long non-wrapped lines in text
- Fix display treeview focus ring when -selectmode none
- Fix focus events not to break entry validation
- Fix [package prefer stable] failing case
- Fix auto_path initialization by Safe Base interps
- Fix bad interaction between grab and mouse pointer warp
- Fix borderwidth calculations on menu items
- Fix cascade tearoff menu redraw artifacts
- Fix coords rounding when drawing canvas items
- Fix corrupt result from [$c postscript] with -file or -channel
- Fix errno management in socket full close
- Fix failure when a [proc] argument name is computed, not literal
- Fix focus on unmapped windows
- Fix handling of duplicates in spinbox -values list
- Fix incomplete read of multi-image GIF
- Fix initialization order of static package in wish
- Fix issue when trying to display angled text without Xft
- Fix issue with font initialization when no font is installed
- Fix problems with Noto Color Emoji font
- Fix race conditions in [file delete] and [file mkdir]
- Fix Std channel initialization for multi-thread operations
- Fix tearoff menu redraw artifacts
- Fix up arrow key in [text] to correctly move cursor to index 1.0
- Fix various cursor issues
- Fix various encoding issues
- Fix various fontchooser issues
- Fix various issues causing crashes and hang in
- Fix various memory issues
- Fix various scrolling bugs and add improvements
- Fix 32/64-bit confusion of FS DIR operations reported for AIX
- Improve appearance of text selection in [*entry] widgets
- Improve checkbutton handling of -selectcolor
- Improve handling of resolution changes
- Improve multi-thread safety when Xft is in use
- Improve ttk high-contrast-mode support
- Improve emoji support
- Improve legacy support for [tk_setPalette]
- Make combobox -postoffset option work with default style
- Make spinbox use proper names in query of option database
- Menu flaws when empty menubar clicked
- New index argument in [$menubutton post x y index]
- Preserve canvas tag list order during add/delete
- Prevent cross-manager loops of geom management
- Rewrite of zlib inflation for multi-stream and completeness
- Run fileevents in proper thread after [thread::attach $channel]
- Stop [unload] corruption of list of loaded packages
- Stop app switching exposing withdrawn windows as zombies
- Tk now denied access to PRIMARY selection from safe interps
- TkpDrawAngledCharsInContext leaked a CGColor
- Try to restore Tcl's [update] command when Tk is unloaded
- Changed [info * methods] to include mixins
- [package require] is now NR-enabled
The following fixes might show some potential incompatibilities with existing software:
- Revised [binary (en|de)code base64] for RFC…
- Record
SUSE-FU-2022:0484-1- Updated
- 2026-11-02
OSVSUSE-FU-2022:0868-1 No score
Feature update for tcl and tk
This feature update for tcl and tk fixes the following issues:
Update tcl and tk to version 8.6.12 (jsc#SLE-21016, jsc#SLE-23284):
- Move tcl.macros to /usr/lib/rpm/macros.d (bsc#1185662)
- Use FAT LTO objects in order to provide proper static library (bsc#1138797)
- Fix a bug in itcl that was affecting iwidgets (bsc#903017)
- Add [combobox current] support 'end' index
- Add fixes in [text] bindings
- Add missing 'deferred clear code' support to GIF photo images
- Add new virtual event <<TkWorldChanged>>
- Add new keycodes: CodeInput, SingleCandidate, MultipleCandidate, PreviousCandidate
- Add new support for POSIX error: EILSEQ
- Add new command [tcl::unsupported::corotype]
- Add new command [tcl::unsupported::timerate] for performance testing
- Add new option -state to [ttk::scale]
- Add portable keycodes: OE, oe, Ydiaeresis
- Add support for backrefs in [array names -regexp]
- Add support for Unicode 14
- Disfavor Master/Slave terminology
- Enhance [oo::object] to acquire or lose a class identity dynamically
- Fix canvas rotated text overlap detection
- Fix canvas closed polylines yo fully honor -joinstyle
- Fix display of Long non-wrapped lines in text
- Fix display treeview focus ring when -selectmode none
- Fix focus events not to break entry validation
- Fix [package prefer stable] failing case
- Fix auto_path initialization by Safe Base interps
- Fix bad interaction between grab and mouse pointer warp
- Fix borderwidth calculations on menu items
- Fix cascade tearoff menu redraw artifacts
- Fix coords rounding when drawing canvas items
- Fix corrupt result from [$c postscript] with -file or -channel
- Fix errno management in socket full close
- Fix failure when a [proc] argument name is computed, not literal
- Fix focus on unmapped windows
- Fix handling of duplicates in spinbox -values list
- Fix incomplete read of multi-image GIF
- Fix initialization order of static package in wish
- Fix issue when trying to display angled text without Xft
- Fix issue with font initialization when no font is installed
- Fix problems with Noto Color Emoji font
- Fix race conditions in [file delete] and [file mkdir]
- Fix Std channel initialization for multi-thread operations
- Fix tearoff menu redraw artifacts
- Fix up arrow key in [text] to correctly move cursor to index 1.0
- Fix various cursor issues
- Fix various encoding issues
- Fix various fontchooser issues
- Fix various issues causing crashes and hang in
- Fix various memory issues
- Fix various scrolling bugs and add improvements
- Fix 32/64-bit confusion of FS DIR operations reported for AIX
- Improve appearance of text selection in [*entry] widgets
- Improve checkbutton handling of -selectcolor
- Improve handling of resolution changes
- Improve multi-thread safety when Xft is in use
- Improve ttk high-contrast-mode support
- Improve emoji support
- Improve legacy support for [tk_setPalette]
- Make combobox -postoffset option work with default style
- Make spinbox use proper names in query of option database
- Menu flaws when empty menubar clicked
- New index argument in [$menubutton post x y index]
- Preserve canvas tag list order during add/delete
- Prevent cross-manager loops of geom management
- Rewrite of zlib inflation for multi-stream and completeness
- Run fileevents in proper thread after [thread::attach $channel]
- Stop [unload] corruption of list of loaded packages
- Stop app switching exposing withdrawn windows as zombies
- Tk now denied access to PRIMARY selection from safe interps
- TkpDrawAngledCharsInContext leaked a CGColor
- Try to restore Tcl's [update] command when Tk is unloaded
- Changed [info * methods] to include mixins
- [package require] is now NR-enabled
The following fixes might show some potential incompatibilities with existing software:
- Revised [binary (en|de)code base64] for RFC compliance and roundtrip
- Tcl_DStringAppendElement # quoting precision, dstring-2.13, dstring-3.10
- Extended [clock scan] ISO format and time zone…
- Record
SUSE-FU-2022:0868-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
tcl8.6Debian:12 |
All versions, plus listed versions 8.6.13+dfsg-28.6.14+dfsg-18.6.15+dfsg-18.6.15+dfsg-28.6.16+dfsg-18.6.17+dfsg-18.6.18+dfsg-1 |
None known |
tcl8.6Debian:13 |
All versions, plus listed versions 8.6.16+dfsg-18.6.17+dfsg-18.6.18+dfsg-1 |
None known |
tcl8.6Debian:14 |
All versions, plus listed versions 8.6.16+dfsg-18.6.17+dfsg-18.6.18+dfsg-1 |
None known |
tclopenEuler:20.03-LTS-SP1 |
before 8.6.10-4.oe1 | 8.6.10-4.oe1 |
tclopenEuler:20.03-LTS-SP3 |
before 8.6.10-4.oe1 | 8.6.10-4.oe1 |
tclopenEuler:22.03-LTS |
before 8.6.10-4.oe2203 | 8.6.10-4.oe2203 |
tcl8.6Root:Debian:12 |
before 8.6.13+dfsg-2.root.io.2 | 8.6.13+dfsg-2.root.io.28.6.13+dfsg-2.root.io.18.6.13+dfsg-2.aikido.3 |
rootio-tcl8.6Root:Debian:12 |
before 8.6.13+dfsg-2.root.io.2 | 8.6.13+dfsg-2.root.io.28.6.13+dfsg-2.root.io.18.6.13+dfsg-2.aikido.3 |
tclSUSE:Linux Enterprise Software Development Kit 12 SP5 |
before 8.6.12-11.3.1 | 8.6.12-11.3.1 |
tkSUSE:Linux Enterprise Software Development Kit 12 SP5 |
before 8.6.12-11.3.1 | 8.6.12-11.3.1 |
Show 7 moreShow less
| Package | Affected | Fixed |
|---|---|---|
tclSUSE:Linux Enterprise Server 12 SP5 |
before 8.6.12-11.3.1 | 8.6.12-11.3.1 |
tkSUSE:Linux Enterprise Server 12 SP5 |
before 8.6.12-11.3.1 | 8.6.12-11.3.1 |
tclSUSE:Linux Enterprise Server for SAP Applications 12 SP5 |
before 8.6.12-11.3.1 | 8.6.12-11.3.1 |
tkSUSE:Linux Enterprise Server for SAP Applications 12 SP5 |
before 8.6.12-11.3.1 | 8.6.12-11.3.1 |
tclSUSE:Linux Enterprise Module for Basesystem 15 SP3 |
before 8.6.12-150300.14.3.1 | 8.6.12-150300.14.3.1 |
tkSUSE:Linux Enterprise Module for Basesystem 15 SP3 |
before 8.6.12-150300.10.3.1 | 8.6.12-150300.10.3.1 |
tkSUSE:Linux Enterprise Module for Desktop Applications 15 SP3 |
before 8.6.12-150300.10.3.1 | 8.6.12-150300.10.3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2021-35331 is a high vulnerability (CVSS 7.8) in Tcl, published July 5, 2021. Its validity is disputed. EPSS puts the chance of exploitation in the next 30 days at 1.69%, the 77th percentile. Fixed in tcl 8.6.10-4.oe1.
References
core.tcl-lang.org/tcl/info/bad6cc213dfe8280
core.tcl-lang.org/tcl/info/28ef6c0c741408a2
github.com/tcltk/tcl/commit/4705dbdde2f32ff90420765cd93e7ac71d81a222
sqlite.org/forum/info/7dcd751996c93ec9
nvd.nist.gov/vuln/detail/CVE-2021-35331
github.com/advisories/GHSA-539q-24vg-qfm4
Show 14 moreShow less
docs.bell-sw.com/security/cves/CVE-2021-35331
security-tracker.debian.org/tracker/CVE-2021-35331
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2022-1720
suse.com/support/update/announcement/-2022-484/suse-fu-20220484-1
bugzilla.suse.com/1072657
bugzilla.suse.com/1085480
bugzilla.suse.com/1138797
bugzilla.suse.com/1179615
bugzilla.suse.com/1181840
bugzilla.suse.com/1185662
bugzilla.suse.com/1195257
suse.com/security/cve/CVE-2021-35331
suse.com/support/update/announcement/-2022-868/suse-fu-20220868-1
bugzilla.suse.com/903017
Left out here: the rest of 2 source descriptions. The JSON record has them.