CVE-2018-19214
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm...
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm/preproc.c for insufficient input.
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
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm/preproc.c for insufficient input.
- Record
CVE-2018-19214- CVSS 3.0
- 7.8 High
CVSS:3.0/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-125
- Updated
- 2026-11-02
CVE List No score
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm/preproc.c for insufficient input.
- Record
CVE-2018-19214- Updated
- 2026-11-02
EUVDEUVD-2018-10923 No score
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm/preproc.c for insufficient input.
- Record
EUVD-2018-10923- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-xjcg-4pp7-3cpv
7.8
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm...
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm/preproc.c for insufficient input.
- Record
GHSA-xjcg-4pp7-3cpv- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-125
- Updated
- 2026-11-02
OSV
7.8
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm/preproc.c for insufficient input.
- Record
CVE-2018-19214- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2018-19214
7.8
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm/preproc.c for insufficient input.
- Record
DEBIAN-CVE-2018-19214- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 5 moreShow less
OSVUBUNTU-CVE-2018-19214
7.8
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm/preproc.c for insufficient input.
- Record
UBUNTU-CVE-2018-19214- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVMGASA-2020-0303 No score
Updated nasm packages fix security vulnerability
Netwide Assembler (NASM) 2.13 has a stack-based buffer over-read in the disasm function of the disasm/disasm.c file. Remote attackers could leverage this vulnerability to cause a denial of service or possibly have unspecified other impact via a crafted ELF file (CVE-2018-10254).
Netwide Assembler (NASM) 2.14rc0 has an endless while loop in the assemble_file function of asm/nasm.c because of a globallineno integer overflow (CVE-2018-10316).
Netwide Assembler (NASM) 2.14rc15 has a buffer over-read in x86/regflags.c (CVE-2018-16382).
NASM nasm-2.13.03 nasm- 2.14rc15 version 2.14rc15 and earlier contains a memory corruption (crashed) of nasm when handling a crafted file due to function assemble_file(inname, depend_ptr) at asm/nasm.c:482. vulnerability in function assemble_file(inname, depend_ptr) at asm/nasm.c:482. that can result in aborting/crash nasm program. This attack appear to be exploitable via a specially crafted asm file (CVE-2018-1000667).
asm/labels.c in Netwide Assembler (NASM) is prone to NULL Pointer Dereference, which allows the attacker to cause a denial of service via a crafted file (CVE-2018-16517).
Netwide Assembler (NASM) 2.14rc15 has an invalid memory write (segmentation fault) in expand_smacro in preproc.c, which allows attackers to cause a denial of service via a crafted input file (CVE-2018-16999).
Netwide Assembler (NASM) 2.14rc16 has a heap-based buffer over-read in expand_mmac_params in asm/preproc.c for the special cases of the % and $ and ! characters (CVE-2018-19215).
Netwide Assembler (NASM) 2.14rc15 has a heap-based buffer over-read in expand_mmac_params in asm/preproc.c for insufficient input (CVE-2018-19214).
- Record
MGASA-2020-0303- Updated
- 2026-11-02
OSVopenSUSE-SU-2020:0952-1 No score
Security update for nasm
This update for nasm fixes the following issues:
nasm was updated to version 2.14.02.
This allows building of Mozilla Firefox 78ESR and also contains lots of bugfixes, security fixes and improvements.
- Fix crash due to multiple errors or warnings during the code generation pass if a list file is specified.
- Create all system-defined macros defore processing command-line given preprocessing directives (-p, -d, -u, --pragma, --before).
- If debugging is enabled, define a DEBUG_FORMAT predefined macro. See section 4.11.7.
- Fix an assert for the case in the obj format when a SEG operator refers to an EXTERN symbol declared further down in the code.
- Fix a corner case in the floating-point code where a binary, octal or hexadecimal floating-point having at least 32, 11, or 8 mantissa digits could produce slightly incorrect results under very specific conditions.
- Support -MD without a filename, for gcc compatibility. -MF can be used to set the dependencies output filename. See section 2.1.7.
- Fix -E in combination with -MD. See section 2.1.21.
- Fix missing errors on redefined labels; would cause convergence failure instead which is very slow and not easy to debug.
- Duplicate definitions of the same label with the same value is now explicitly permitted (2.14 would allow it in some circumstances.)
- Add the option --no-line to ignore %line directives in the source. See section 2.1.33 and section 4.10.1.
- Changed -I option semantics by adding a trailing path separator unconditionally.
- Fixed null dereference in corrupted invalid single line macros.
- Fixed division by zero which may happen if source code is malformed.
- Fixed out of bound access in processing of malformed segment override.
- Fixed out of bound access in certain EQU parsing.
- Fixed buffer underflow in float parsing.
- Added SGX (Intel Software Guard Extensions) instructions.
- Added +n syntax for multiple contiguous registers.
- Fixed subsections_via_symbols for macho object format.
- Added the --gprefix, --gpostfix, --lprefix, and --lpostfix command line options, to allow command line base symbol renaming. See section 2.1.28.
- Allow label renaming to be specified by %pragma in addition to from the command line. See section 6.9.
- Supported generic %pragma namespaces, output and debug. See section 6.10.
- Added the --pragma command line option to inject a %pragma directive. See section 2.1.29.
- Added the --before command line option to accept preprocess statement before input. See section 2.1.30.
- Added AVX512 VBMI2 (Additional Bit Manipulation), VNNI (Vector Neural Network), BITALG (Bit Algorithm), and GFNI (Galois Field New Instruction) instructions.
- Added the STATIC directive for local symbols that should be renamed using global-symbol rules. See section 6.8.
- Allow a symbol to be defined as EXTERN and then later overridden as GLOBAL or COMMON. Furthermore, a symbol declared EXTERN and then defined will be treated as GLOBAL. See section 6.5.
- The GLOBAL directive no longer is required to precede the definition of the symbol.
- Support private_extern as macho specific extension to the GLOBAL directive. See section 7.8.5.
- Updated UD0 encoding to match with the specification
- Added the --limit-X command line option to set execution limits. See section 2.1.31.
- Updated the Codeview version number to be aligned with MASM.
- Added the --keep-all command line option to preserve output files. See section 2.1.32.
- Added the --include command line option, an alias to -P (section 2.1.18).
- Added the --help command line option as an alias to -h (section 3.1).
- Added -W, -D, and -Q suffix aliases for RET instructions so the operand sizes of these instructions can be encoded without using o16, o32 or o64.
New upstream version 2.13.03:
- Add flags: AES, VAES, VPCLMULQDQ
- Add VPCLMULQDQ instruction
- elf: Add missing dwarf loc section
- documentation updates
This update was imported from the SUSE:SLE-15:Update update project.
- Record
openSUSE-SU-2020:0952-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2020:0954-1 No score
Security update for nasm
This update for nasm fixes the following issues:
nasm was updated to version 2.14.02.
This allows building of Mozilla Firefox 78ESR and also contains lots of bugfixes, security fixes and improvements.
- Fix crash due to multiple errors or warnings during the code generation pass if a list file is specified.
- Create all system-defined macros defore processing command-line given preprocessing directives (-p, -d, -u, --pragma, --before).
- If debugging is enabled, define a DEBUG_FORMAT predefined macro. See section 4.11.7.
- Fix an assert for the case in the obj format when a SEG operator refers to an EXTERN symbol declared further down in the code.
- Fix a corner case in the floating-point code where a binary, octal or hexadecimal floating-point having at least 32, 11, or 8 mantissa digits could produce slightly incorrect results under very specific conditions.
- Support -MD without a filename, for gcc compatibility. -MF can be used to set the dependencies output filename. See section 2.1.7.
- Fix -E in combination with -MD. See section 2.1.21.
- Fix missing errors on redefined labels; would cause convergence failure instead which is very slow and not easy to debug.
- Duplicate definitions of the same label with the same value is now explicitly permitted (2.14 would allow it in some circumstances.)
- Add the option --no-line to ignore %line directives in the source. See section 2.1.33 and section 4.10.1.
- Changed -I option semantics by adding a trailing path separator unconditionally.
- Fixed null dereference in corrupted invalid single line macros.
- Fixed division by zero which may happen if source code is malformed.
- Fixed out of bound access in processing of malformed segment override.
- Fixed out of bound access in certain EQU parsing.
- Fixed buffer underflow in float parsing.
- Added SGX (Intel Software Guard Extensions) instructions.
- Added +n syntax for multiple contiguous registers.
- Fixed subsections_via_symbols for macho object format.
- Added the --gprefix, --gpostfix, --lprefix, and --lpostfix command line options, to allow command line base symbol renaming. See section 2.1.28.
- Allow label renaming to be specified by %pragma in addition to from the command line. See section 6.9.
- Supported generic %pragma namespaces, output and debug. See section 6.10.
- Added the --pragma command line option to inject a %pragma directive. See section 2.1.29.
- Added the --before command line option to accept preprocess statement before input. See section 2.1.30.
- Added AVX512 VBMI2 (Additional Bit Manipulation), VNNI (Vector Neural Network), BITALG (Bit Algorithm), and GFNI (Galois Field New Instruction) instructions.
- Added the STATIC directive for local symbols that should be renamed using global-symbol rules. See section 6.8.
- Allow a symbol to be defined as EXTERN and then later overridden as GLOBAL or COMMON. Furthermore, a symbol declared EXTERN and then defined will be treated as GLOBAL. See section 6.5.
- The GLOBAL directive no longer is required to precede the definition of the symbol.
- Support private_extern as macho specific extension to the GLOBAL directive. See section 7.8.5.
- Updated UD0 encoding to match with the specification
- Added the --limit-X command line option to set execution limits. See section 2.1.31.
- Updated the Codeview version number to be aligned with MASM.
- Added the --keep-all command line option to preserve output files. See section 2.1.32.
- Added the --include command line option, an alias to -P (section 2.1.18).
- Added the --help command line option as an alias to -h (section 3.1).
- Added -W, -D, and -Q suffix aliases for RET instructions so the operand sizes of these instructions can be encoded without using o16, o32 or o64.
New upstream version 2.13.03:
- Add flags: AES, VAES, VPCLMULQDQ
- Add VPCLMULQDQ instruction
- elf: Add missing dwarf loc section
- documentation updates
This update was imported from the SUSE:SLE-15:Update update project.
- Record
openSUSE-SU-2020:0954-1- Updated
- 2026-11-02
OSVSUSE-SU-2020:1843-1 No score
Security update for nasm
This update for nasm fixes the following issues:
nasm was updated to version 2.14.02.
This allows building of Mozilla Firefox 78ESR and also contains lots of bugfixes, security fixes and improvements.
- Fix crash due to multiple errors or warnings during the code generation pass if a list file is specified.
- Create all system-defined macros defore processing command-line given preprocessing directives (-p, -d, -u, --pragma, --before).
- If debugging is enabled, define a DEBUG_FORMAT predefined macro. See section 4.11.7.
- Fix an assert for the case in the obj format when a SEG operator refers to an EXTERN symbol declared further down in the code.
- Fix a corner case in the floating-point code where a binary, octal or hexadecimal floating-point having at least 32, 11, or 8 mantissa digits could produce slightly incorrect results under very specific conditions.
- Support -MD without a filename, for gcc compatibility. -MF can be used to set the dependencies output filename. See section 2.1.7.
- Fix -E in combination with -MD. See section 2.1.21.
- Fix missing errors on redefined labels; would cause convergence failure instead which is very slow and not easy to debug.
- Duplicate definitions of the same label with the same value is now explicitly permitted (2.14 would allow it in some circumstances.)
- Add the option --no-line to ignore %line directives in the source. See section 2.1.33 and section 4.10.1.
- Changed -I option semantics by adding a trailing path separator unconditionally.
- Fixed null dereference in corrupted invalid single line macros.
- Fixed division by zero which may happen if source code is malformed.
- Fixed out of bound access in processing of malformed segment override.
- Fixed out of bound access in certain EQU parsing.
- Fixed buffer underflow in float parsing.
- Added SGX (Intel Software Guard Extensions) instructions.
- Added +n syntax for multiple contiguous registers.
- Fixed subsections_via_symbols for macho object format.
- Added the --gprefix, --gpostfix, --lprefix, and --lpostfix command line options, to allow command line base symbol renaming. See section 2.1.28.
- Allow label renaming to be specified by %pragma in addition to from the command line. See section 6.9.
- Supported generic %pragma namespaces, output and debug. See section 6.10.
- Added the --pragma command line option to inject a %pragma directive. See section 2.1.29.
- Added the --before command line option to accept preprocess statement before input. See section 2.1.30.
- Added AVX512 VBMI2 (Additional Bit Manipulation), VNNI (Vector Neural Network), BITALG (Bit Algorithm), and GFNI (Galois Field New Instruction) instructions.
- Added the STATIC directive for local symbols that should be renamed using global-symbol rules. See section 6.8.
- Allow a symbol to be defined as EXTERN and then later overridden as GLOBAL or COMMON. Furthermore, a symbol declared EXTERN and then defined will be treated as GLOBAL. See section 6.5.
- The GLOBAL directive no longer is required to precede the definition of the symbol.
- Support private_extern as macho specific extension to the GLOBAL directive. See section 7.8.5.
- Updated UD0 encoding to match with the specification
- Added the --limit-X command line option to set execution limits. See section 2.1.31.
- Updated the Codeview version number to be aligned with MASM.
- Added the --keep-all command line option to preserve output files. See section 2.1.32.
- Added the --include command line option, an alias to -P (section 2.1.18).
- Added the --help command line option as an alias to -h (section 3.1).
- Added -W, -D, and -Q suffix aliases for RET instructions so the operand sizes of these instructions can be encoded without using o16, o32 or o64.
New upstream version 2.13.03:
- Add flags: AES, VAES, VPCLMULQDQ
- Add VPCLMULQDQ instruction
- elf: Add missing dwarf loc section
- documentation updates
- Record
SUSE-SU-2020:1843-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
nasmDebian:12 |
before 2.14-1 | 2.14-1 |
nasmDebian:13 |
before 2.14-1 | 2.14-1 |
nasmDebian:14 |
before 2.14-1 | 2.14-1 |
nasmMageia:7 From an advisory covering 9 CVEs |
before 2.14.02-1.mga7 | 2.14.02-1.mga7 |
nasmSUSE:Linux Enterprise Module for Development Tools 15 SP1 From an advisory covering 13 CVEs |
before 2.14.02-3.4.1 | 2.14.02-3.4.1 |
nasmSUSE:Linux Enterprise Module for Development Tools 15 SP2 From an advisory covering 13 CVEs |
before 2.14.02-3.4.1 | 2.14.02-3.4.1 |
nasmUbuntu:16.04:LTS |
All versions, plus listed versions 2.11.06-1really2.11.05-12.11.08-12.11.08-1ubuntu0.1 |
None known |
nasmUbuntu:18.04:LTS |
All versions, plus listed versions 2.13.01-22.13.02-0.1 |
None known |
nasmUbuntu:20.04:LTS |
All versions, plus listed versions 2.14.02-1 |
None known |
nasmUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 2.15.05-12.15.05-1ubuntu0.1~esm12.15.05-1ubuntu0.1~esm2 |
None known |
Show 6 moreShow less
| Package | Affected | Fixed |
|---|---|---|
nasmUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 2.16.01-12.16.01-1build12.16.01-1ubuntu0.1~esm12.16.01-1ubuntu0.1~esm2 |
None known |
nasmUbuntu:25.10 |
All versions, plus listed versions 2.16.03-1 |
None known |
nasmUbuntu:26.10 |
All versions, plus listed versions 3.01-1 |
None known |
nasmUbuntu:26.04:LTS |
All versions, plus listed versions 2.16.03-13.01-1 |
None known |
nasmopenSUSE:Leap 15.1 From an advisory covering 13 CVEs |
before 2.14.02-lp151.3.3.1 | 2.14.02-lp151.3.3.1 |
nasmopenSUSE:Leap 15.2 From an advisory covering 13 CVEs |
before 2.14.02-lp152.4.3.1 | 2.14.02-lp152.4.3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| 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-2018-19214 is a high vulnerability (CVSS 7.8) in Nasm Netwide Assembler, published November 12, 2018. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.34%, the 71st percentile. Fixed in nasm 2.14-1.
References
repo.or.cz/nasm.git/commit/661f723d39e03ca6eb05d7376a43ca33db478354
bugzilla.nasm.us/show_bug.cgi?id=3392521
lists.opensuse.org/opensuse-security-announce/2020-07/msg00017.html
lists.opensuse.org/opensuse-security-announce/2020-07/msg00015.html
nvd.nist.gov/vuln/detail/CVE-2018-19214
github.com/advisories/GHSA-xjcg-4pp7-3cpv
Show 36 moreShow less
security-tracker.debian.org/tracker/CVE-2018-19214
advisories.mageia.org/MGASA-2020-0303.html
bugs.mageia.org/show_bug.cgi?id=26916
lists.suse.com/pipermail/sle-security-updates/2020-July/007073.html
suse.com/support/update/announcement/2020/suse-su-20201843-1
bugzilla.suse.com/1084631
bugzilla.suse.com/1086186
bugzilla.suse.com/1086227
bugzilla.suse.com/1086228
bugzilla.suse.com/1090519
bugzilla.suse.com/1090840
bugzilla.suse.com/1106878
bugzilla.suse.com/1107592
bugzilla.suse.com/1107594
bugzilla.suse.com/1108404
bugzilla.suse.com/1115758
bugzilla.suse.com/1115774
bugzilla.suse.com/1115795
bugzilla.suse.com/1173538
suse.com/security/cve/CVE-2018-1000667
suse.com/security/cve/CVE-2018-10016
suse.com/security/cve/CVE-2018-10254
suse.com/security/cve/CVE-2018-10316
suse.com/security/cve/CVE-2018-16382
suse.com/security/cve/CVE-2018-16517
suse.com/security/cve/CVE-2018-16999
suse.com/security/cve/CVE-2018-19214
suse.com/security/cve/CVE-2018-19215
suse.com/security/cve/CVE-2018-19216
suse.com/security/cve/CVE-2018-8881
suse.com/security/cve/CVE-2018-8882
suse.com/security/cve/CVE-2018-8883
ubuntu.com/security/CVE-2018-19214
cve.org/CVERecord?id=CVE-2018-19214
lists.opensuse.org/archives/list/[email protected]/thread/DOJ3G66H5CLZFCUKGB4363DLYQJJULTG
lists.opensuse.org/archives/list/[email protected]/thread/W7JG7QO2J6GPYXBPONYRKYBTFH2XDJZJ