Every CVE Search/ Get API key

CVE-2023-39070

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the...

7.8 HighFix available

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the removeContradiction parameter in token.cpp:1934.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.28%Up 0.2 points since Sep 12, 2023
90%50%10%1%

What each source reports

NVD Score used 7.8

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the removeContradiction parameter in token.cpp:1934.

Record
CVE-2023-39070
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-416
Updated
2026-11-02
CVE List No score

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the removeContradiction parameter in token.cpp:1934.

Record
CVE-2023-39070
Updated
2026-11-02
EUVDEUVD-2023-42817 No score

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the removeContradiction parameter in token.cpp:1934.

Record
EUVD-2023-42817
Updated
2026-11-03
GitHub AdvisoriesGHSA-8mw5-fw53-vq24 7.8

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the...

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the removeContradiction parameter in token.cpp:1934.

Record
GHSA-8mw5-fw53-vq24
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-416
Updated
2026-11-02
OSVAZL-43537 7.8

CVE-2023-39070 affecting package cppcheck 2.7-2

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the removeContradiction parameter in token.cpp:1934.

Record
AZL-43537
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVAZL-45396 7.8

CVE-2023-39070 affecting package cppcheck for versions less than 2.18.3-1

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the removeContradiction parameter in token.cpp:1934.

Record
AZL-45396
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
Show 5 moreShow less
OSVDEBIAN-CVE-2023-39070 7.8

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the removeContradiction parameter in token.cpp:1934.

Record
DEBIAN-CVE-2023-39070
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2023-39070 7.8

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the removeContradiction parameter in token.cpp:1934.

Record
UBUNTU-CVE-2023-39070
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSV No score

An issue in Cppcheck 2.12 dev allows a local attacker to execute arbitrary code via the removeContradiction parameter in token.cpp:1934.

Record
CVE-2023-39070
Updated
2026-11-02
OSVopenSUSE-SU-2023:0413-1 No score

Security update for cppcheck

This update for cppcheck fixes the following issues:

  • CVE-2023-39070: Fixed heap use-after-free in removeContradiction() (boo#1215233)

  • update to 2.12.1:

    • Support importing projects with project-name
  • update to 2.12.0:

    • uselessOverride finds overriding functions that either duplicate code from or delegate back to the base class implementation
    • knownPointerToBool finds pointer to bool conversions that are always true or false
    • truncLongCastAssignment and truncLongCastReturn check additional types, including float/double/long double
    • duplInheritedMember also reports duplicated member functions
    • constParameter*/constVariable* checks find more instances of pointers/references that can be const, e.g. when calling library functions
    • Write how many checkers was activated after a run
    • Added --checkers-report that can be used to generate a report in a file that shows what checkers was activated and disabled
    • The qmake build system has been deprecated and will be removed in a future version.
    • Command-line option '--template
  • update to 2.11:

    • pop_back on empty container is UB
    • Improve useStlAlgorithm check to handle many more conditions in the loop for any_of, all_of and none_of algorithms
    • ValueFlow can evaluate the return value of functions even when conditionals are used
    • ValueFlow will now forward the container sizes being returned from a function
    • ValueFlow can infer possible values from possible symbolic values
    • Improve valueflow after pushing to container
    • The new option --check-level= has been added that controls how much checking is made by Cppcheck. The default checking level is 'normal'. If you feel that you can wait longer on results you can use --check-level=exhaustive.
    • It is no longer necessary to run '--check-config' to get detailed 'missingInclude' and 'missingIncludeSystem' messages. They will always be issued in the regular analysis if 'missingInclude' is enabled.
    • 'missingInclude' and 'missingIncludeSystem' are reported with '-j' is > 1 and processes are used in the backend (default in non-Windows binaries)
    • 'missingInclude' and 'missingIncludeSystem' will now cause the '--error-exitcode' to be applied
    • '--enable=information' will no longer implicitly enable 'missingInclude' starting with 2.16. Please enable it explicitly if you require it.
    • The constParameter and constVariable checks have been split into 3 different IDs based on if the variable is a pointer, a reference, or local. The different IDs will allow users to suppress different const warning based on variable type.
    • constParameter
    • constParameterReference
    • constParameterPointer
    • constVariable
    • constVariableReference
    • constVariablePointer
    • More command-line parameters will now check if the given integer argument is actually valid. Several other internal string-to-integer conversions will now be error checked.
    • scanning projects (with -j1) will now defer the analysis of markup files until the whole code was processed
  • update to 2.10.3:

    • SymbolDatabase: Fix handling of function pointer arguments
  • update to 2.10.2:

    • GUI: Set proper title for compliance report dialog

    • GUI: Generate compliance report

    • Tokenizer: tweaked simplification of function pointers

    • fix whole program analysis

    • Import Project: Fix problem with define value with space

    • Fix execution of executable addons from GUI

    • fix for windows installer, no other changes

    • Fixes when importing AST from clang

    • comments can be added at end of suppression in suppressions file is similar to GCC. If you want to get warnings in the old

    • Added Cppcheck annotations cppcheck_low(VALUE) and

    • Added API01-C: Avoid laying out strings in memory directly

    • Duplicate expression for condition and assignment: if (x==3) x=3;

    • Patch was…

Record
openSUSE-SU-2023:0413-1
Updated
2026-11-02
OSVopenSUSE-SU-2024:13526-1 No score

cppcheck-2.12.1-3.1 on GA media

These are all security issues fixed in the cppcheck-2.12.1-3.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:13526-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
cppcheck
Azure Linux:2
through 2.7-2 None known
cppcheck
Azure Linux:3
before 2.18.3-1
2.18.3-1
cppcheck
Debian:12
All versions, plus listed versions
2.10-22.11-12.11-22.11-32.12.0-1
Show 17 moreShow less
2.13.0-12.13.0-22.14.0-12.15.0-12.16.0-12.17.1-12.17.1-22.18.0-12.18.0-22.18.0-2~bpo13+12.19.0-12.19.0-22.19.0-32.20.0-12.20.0-22.21.0-12.22.0-1
None known
cppcheck
Debian:13
All versions, plus listed versions
2.17.1-22.18.0-12.18.0-22.18.0-2~bpo13+12.19.0-1
Show 6 moreShow less
2.19.0-22.19.0-32.20.0-12.20.0-22.21.0-12.22.0-1
None known
cppcheck
Debian:14
All versions, plus listed versions
2.17.1-22.18.0-12.18.0-22.18.0-2~bpo13+12.19.0-1
Show 6 moreShow less
2.19.0-22.19.0-32.20.0-12.20.0-22.21.0-12.22.0-1
None known
cppcheck
Ubuntu:14.04:LTS
All versions, plus listed versions
1.60.1-11.61-1
None known
cppcheck
Ubuntu:16.04:LTS
All versions, plus listed versions
1.69-1build11.70-21.71-11.72-1
None known
cppcheck
Ubuntu:18.04:LTS
All versions, plus listed versions
1.80-11.81-11.81-1build11.82-1
None known
cppcheck
Ubuntu:20.04:LTS
All versions, plus listed versions
1.88-11.89-41.90-11.90-21.90-31.90-41.90-4build1
None known
cppcheck
Ubuntu:22.04:LTS
All versions, plus listed versions
2.3-12.6-12.6-22.7-1
None known
Show 7 moreShow less
Affected packages
PackageAffectedFixed
cppcheck
Ubuntu:24.04:LTS
All versions, plus listed versions
2.11-32.12.0-12.13.0-22.13.0-2ubuntu12.13.0-2ubuntu22.13.0-2ubuntu3
None known
cppcheck
Ubuntu:25.10
All versions, plus listed versions
2.17.1-12.17.1-22.17.1-2build1
None known
cppcheck
Ubuntu:26.10
All versions, plus listed versions
2.19.0-32.20.0-22.21.0-1
None known
cppcheck
Ubuntu:26.04:LTS
All versions, plus listed versions
2.17.1-2build12.18.0-22.19.0-3
None known
cppcheck
SUSE:Package Hub 15 SP5
before 2.12.1-bp155.2.3.1
2.12.1-bp155.2.3.1
cppcheck
openSUSE:Leap 15.5
before 2.12.1-bp155.2.3.1
2.12.1-bp155.2.3.1
cppcheck
openSUSE:Tumbleweed
before 2.12.1-3.1
2.12.1-3.1

History

History
RecordedChangedSources
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2023-39070 is a high vulnerability (CVSS 7.8) in Cppchecksolutions Cppcheck, published September 11, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.28%, the 20th percentile. Fixed in cppcheck 2.18.3-1.

References

Show 4 moreShow less
This page doesn't list everything

Left out here: the rest of 1 source description. The JSON record has them.

MoveEnter Open