{"schema_version":"1.7.3","id":"SUSE-SU-2020:1864-1","published":"2020-07-07T10:54:13Z","modified":"2026-02-04T03:55:03.790891Z","related":["CVE-2017-14228","CVE-2017-17810","CVE-2017-17811","CVE-2017-17812","CVE-2017-17813","CVE-2017-17814","CVE-2017-17815","CVE-2017-17816","CVE-2017-17817","CVE-2017-17818","CVE-2017-17819","CVE-2017-17820"],"upstream":["CVE-2017-14228","CVE-2017-17810","CVE-2017-17811","CVE-2017-17812","CVE-2017-17813","CVE-2017-17814","CVE-2017-17815","CVE-2017-17816","CVE-2017-17817","CVE-2017-17818","CVE-2017-17819","CVE-2017-17820"],"summary":"Security update for nasm","details":"\n\nnasm was updated to version 2.14.02:\n\n* Fix crash due to multiple errors or warnings during the code generation pass if a list file is specified.\n* Create all system-defined macros defore processing command-line given preprocessing directives (-p, -d, -u, --pragma, --before).\n* If debugging is enabled, define a __DEBUG_FORMAT__ predefined macro. See section 4.11.7.\n* 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.\n* 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.\n* Support -MD without a filename, for gcc compatibility. -MF can be used to set the dependencies output filename. See section 2.1.7.\n* Fix -E in combination with -MD. See section 2.1.21.\n* Fix missing errors on redefined labels; would cause convergence failure instead which is very slow and not easy to debug.\n* Duplicate definitions of the same label with the same value is now explicitly permitted (2.14 would allow it in some circumstances.)\n* Add the option --no-line to ignore %line directives in the source. See section 2.1.33 and section 4.10.1.\n* Changed -I option semantics by adding a trailing path separator unconditionally.\n* Fixed null dereference in corrupted invalid single line macros.\n* Fixed division by zero which may happen if source code is malformed.\n* Fixed out of bound access in processing of malformed segment override.\n* Fixed out of bound access in certain EQU parsing.\n* Fixed buffer underflow in float parsing.\n* Added SGX (Intel Software Guard Extensions) instructions.\n* Added +n syntax for multiple contiguous registers.\n* Fixed subsections_via_symbols for macho object format.\n* Added the --gprefix, --gpostfix, --lprefix, and --lpostfix command line options, to allow command line base symbol renaming. See section 2.1.28.\n* Allow label renaming to be specified by %pragma in addition to from the command line. See section 6.9.\n* Supported generic %pragma namespaces, output and debug. See section 6.10.\n* Added the --pragma command line option to inject a %pragma directive. See section 2.1.29.\n* Added the --before command line option to accept preprocess statement before input. See section 2.1.30.\n* Added AVX512 VBMI2 (Additional Bit Manipulation), VNNI (Vector Neural Network), BITALG (Bit Algorithm), and GFNI (Galois Field New Instruction) instructions.\n* Added the STATIC directive for local symbols that should be renamed using global-symbol rules. See section 6.8.\n* 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.\n* The GLOBAL directive no longer is required to precede the definition of the symbol.\n* Support private_extern as macho specific extension to the GLOBAL directive. See section 7.8.5.\n* Updated UD0 encoding to match with the specification\n* Added the --limit-X command line option to set execution limits. See section 2.1.31.\n* Updated the Codeview version number to be aligned with MASM.\n* Added the --keep-all command line option to preserve output files. See section 2.1.32.\n* Added the --include command line option, an alias to -P (section 2.1.18).\n* Added the --help command line option as an alias to -h (section 3.1).\n* 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.\n\nNew upstream version 2.13.03:\n\n* Add flags: AES, VAES, VPCLMULQDQ\n* Add VPCLMULQDQ instruction\n* elf: Add missing dwarf loc section\n* documentation updates\n\nnasm was updated to new upstream version 2.13.02:\n\n* Fix generation of PEXTRW instruction.\n* Fix smartalign package which could trigger an error during\n  optimization if the alignment code expanded too much due to\n  optimization of the previous code.\n* Fix a case where negative value in TIMES directive causes\n  panic instead of an error.\n* Fix the incorrect generation of VEX-encoded instruction\n  when static mode decorators are specified on scalar instructions,\n  losing the decorators as they require EVEX encoding.\n* Fix generation of dependency lists.\n* Fixes macro calls that have the wrong number of arguments\n  (bsc#1073796, CVE-2017-17810)\n* Fixes Heap-based buffer overflow allows related to a strcpy\n  in paste_tokens (bsc#1073798, CVE-2017-17811)\n* Fixes Heap-based buffer over-read in the function detoken()\n  (bsc#1073799, CVE-2017-17812)\n* Fixes Use-after-free in the pp_list_one_macro function\n  (bsc#1073803, CVE-2017-17813)\n* Fixes Use-after-free in do_directive\n  (bsc#1073808, CVE-2017-17814)\n* Fixes Illegal address access in is_mmacro()\n  (bsc#1073818, CVE-2017-17815)\n* Fixes Use-after-free in pp_getline\n  (bsc#1073823, CVE-2017-17816)\n* Fixes Use-after-free in pp_verror\n  (bsc#1073829, CVE-2017-17817)\n* Fixes Heap-based buffer over-read related to a while loop in\n  paste_tokens (bsc#1073830, CVE-2017-17818)\n* Fixes Illegal address access in the function find_cc\n  (bsc#1073832, CVE-2017-17819)\n* Fixes Use-after-free in pp_list_one_macro\n  (bsc#1073846, CVE-2017-17820)\n* Fixes illegal address access in thefunction paste_tokens()\n  (bsc#1058013, CVE-2017-14228)\n\nnasm was updated to version 2.13.01:\n\n* Fix incorrect output for some types of FAR or SEG references in\n  the obj output format, and possibly other 16-bit output formats.\n* Fix the address in the list file for an instruction containing\n  a TIMES directive.\n* Fix error with TIMES used together with an instruction which\n  can vary in size, e.g. JMP.\n* Fix breakage on some uses of the DZ pseudo-op.\n\nnasm was updated to version 2.13.00:\n\n* Support the official forms of the UD0 and UD1 instructions.\n* Allow self-segment-relative expressions in immediates and\n  displacements\n* Handle a 64-bit origin in NDISASM.\n* NASM can now generate sparse output files for relevant output\n  formats, if the underlying operating system supports them.\n* Fix a number of bugs related to AVX-512 decorators.\n* Fix the {z} decorator on AVX-512 VMOVDQ* instructions.\n* Add new warnings for certain dangerous constructs which never\n  ought to have been allowed.\n* Fix the EVEX (AVX-512) versions of the VPBROADCAST, VPEXTR, and\n  VPINSR instructions.\n* Support contracted forms of additional instructions.\n* Fix Codeview malformed compiler version record.\n* Add the CLWB and PCOMMIT instructions.\n* Add the %pragma preprocessor directive for soft-error\n  directives.\n* Add the RDPID instruction.\n\nnasm was updated to version 2.12.02:\n\n* Fix preprocessor errors, especially %error and %warning, inside \n  if statements.\n* Fix relative relocations in 32-bit Mach-O.\n* More Codeview debug format fixes.\n* If the MASM PTR keyword is encountered, issue a warning. This \n  is much more likely to indicate a MASM-ism encountered in NASM \n  than it is a valid label.\n* This warning can be suppressed with -w-ptr, the [warning] \n  directive (see section 2.1.24) or by the macro definition \n  %idefine ptr %??.\n* When an error or a warning comes from the expansion of a \n  multi-line macro, display the file and line numbers for the \n  expanded macros.\n* Macros defined with .nolist do not get displayed.\n* Add macros ilog2fw() and ilog2cw() to the ifunc macro package. \n  See section 5.4.1.\n\nnasm was updated to version 2.12.01:\n\n* Portability fixes for some platforms.\n* Fix error when not specifying a list file.\n* Correct the handling of macro-local labels in the Codeview \n  debugging format.\n* Add CLZERO, MONITORX and MWAITX instructions.\n\nnasm was updated to version 2.12:\n\n* Major fixes to the macho backend (section 7.8); earlier \n  versions would produce invalid symbols and relocations on a \n  regular basis.\n* Support for thread-local storage in Mach-O.\n* Support for arbitrary sections in Mach-O.\n* Fix wrong negative size treated as a big positive value passed \n  into backend causing NASM to crash.\n* Fix handling of zero-extending unsigned relocations, we have \n  been printing wrong message and forgot to assign segment with \n  predefined value before passing it into output format.\n* Fix potential write of oversized (with size greater than \n  allowed in output format) relative relocations.\n* Portability fixes for building NASM with LLVM compiler.\n* Add support of Codeview version 8 (cv8) debug format for win32 \n  and win64 formats in the COFF backend, see section 7.5.3.\n* Allow 64-bit outputs in 16/32-bit only backends. Unsigned \n  64-bit relocations are zero-extended from 32-bits with a \n  warning (suppressible via -w-zext-reloc); signed 64-bit \n  relocations are an arror.\n* Line numbers in list files now correspond to the lines in the \n  source files, instead of simply being sequential.\n\nnasm was updated to version 2.11.09:\n\n* Fix potential stack overwrite in macho32 backend.\n* Fix relocation records in macho64 backend.\n* Fix symbol lookup computation in macho64 backend.\n* Adjust .symtab and .rela.text sections alignments to 8 bytes \n  in elf64 backed.\n* Fix section length computation in bin backend which leaded in \n  incorrect relocation records.\n\nnasm was updated to version 2.11.08:\n\n* Fix section length computation in bin backend which leaded in \n  incorrect relocation records.\n* Add a warning for numeric preprocessor definitions passed via \n  command line which might have unexpected results otherwise.\n* Add ability to specify a module name record in rdoff linker \n\n  ","affected":[{"package":{"name":"nasm","ecosystem":"SUSE:Linux Enterprise Software Development Kit 12 SP5","purl":"pkg:rpm/suse/nasm&distro=SUSE%20Linux%20Enterprise%20Software%20Development%20Kit%2012%20SP5"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.14.02-4.8.1"}]}],"ecosystem_specific":{"binaries":[{"nasm":"2.14.02-4.8.1"}]},"database_specific":{"source":"https://ftp.suse.com/pub/projects/security/osv/SUSE-SU-2020:1864-1.json"}}],"references":[{"type":"ADVISORY","url":"https://www.suse.com/support/update/announcement/2020/suse-su-20201864-1/"},{"type":"REPORT","url":"https://bugzilla.suse.com/1058013"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073796"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073798"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073799"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073803"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073808"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073818"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073823"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073829"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073830"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073832"},{"type":"REPORT","url":"https://bugzilla.suse.com/1073846"},{"type":"REPORT","url":"https://bugzilla.suse.com/1084631"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-14228"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17810"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17811"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17812"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17813"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17814"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17815"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17816"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17817"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17818"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17819"},{"type":"WEB","url":"https://www.suse.com/security/cve/CVE-2017-17820"}]}