Bugzilla – Bug 1128889
VUL-1: CVE-2019-9638: php5,php72,php7,php53: Uninitialized read in exif_process_IFD_in_MAKERNOTE
Last modified: 2024-05-07 09:19:12 UTC
CVE-2019-9638 Multiple security issues were found in PHP, a widely-used open source general purpose scripting language: The EXIF extension had multiple cases of invalid memory access and rename() was implemented insecurely. For the stable distribution (stretch), this problem has been fixed in version 7.0.33-0+deb9u3. We recommend that you upgrade your php7.0 packages. For the detailed security status of php7.0 please refer to its security tracker page at: \ https://security-tracker.debian.org/tracker/php7.0 References: http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-9638 http://www.debian.org/security/2019/dsa-4403
Upstream bug: https://bugs.php.net/bug.php?id=77563
BEFORE 15/php7, 12/php7 $ USE_ZEND_ALLOC=0 valgrind -q php test.php [.. unrelated uninitialized conditional jumps ..] ==14804== Conditional jump or move depends on uninitialised value(s) ==14804== at 0x6F5FD3F: exif_process_IFD_in_MAKERNOTE.isra.13 (exif.c:2788) ==14804== by 0x6F61F0F: exif_process_IFD_TAG (exif.c:3075) ==14804== by 0x6F61F0F: exif_process_IFD_in_JPEG (exif.c:3157) ==14804== by 0x6F64B10: exif_process_TIFF_in_JPEG (exif.c:3242) ==14804== by 0x6F64B10: exif_process_APP1 (exif.c:3267) ==14804== by 0x6F64B10: exif_scan_JPEG_header (exif.c:3412) ==14804== by 0x6F64B10: exif_scan_FILE_header (exif.c:3797) ==14804== by 0x6F64B10: exif_read_file.constprop.15 (exif.c:3939) ==14804== by 0x6F64D0B: zif_exif_thumbnail (exif.c:4144) ==14804== by 0x3E32BC: ZEND_DO_ICALL_SPEC_HANDLER (zend_vm_execute.h:586) ==14804== by 0x3D5FAA: execute_ex (zend_vm_execute.h:414) ==14804== by 0x431FE2: zend_execute (zend_vm_execute.h:458) ==14804== by 0x392E8F: zend_execute_scripts (zend.c:1427) ==14804== by 0x32B28F: php_execute_script (main.c:2494) ==14804== by 0x433D87: do_cli (php_cli.c:974) ==14804== by 0x1DE05A: main (php_cli.c:1344) ==14804== ==14804== Conditional jump or move depends on uninitialised value(s) ==14804== at 0x6F5FD48: exif_process_IFD_in_MAKERNOTE.isra.13 (exif.c:2793) ==14804== by 0x6F61F0F: exif_process_IFD_TAG (exif.c:3075) ==14804== by 0x6F61F0F: exif_process_IFD_in_JPEG (exif.c:3157) ==14804== by 0x6F64B10: exif_process_TIFF_in_JPEG (exif.c:3242) ==14804== by 0x6F64B10: exif_process_APP1 (exif.c:3267) ==14804== by 0x6F64B10: exif_scan_JPEG_header (exif.c:3412) ==14804== by 0x6F64B10: exif_scan_FILE_header (exif.c:3797) ==14804== by 0x6F64B10: exif_read_file.constprop.15 (exif.c:3939) ==14804== by 0x6F64D0B: zif_exif_thumbnail (exif.c:4144) ==14804== by 0x3E32BC: ZEND_DO_ICALL_SPEC_HANDLER (zend_vm_execute.h:586) ==14804== by 0x3D5FAA: execute_ex (zend_vm_execute.h:414) ==14804== by 0x431FE2: zend_execute (zend_vm_execute.h:458) ==14804== by 0x392E8F: zend_execute_scripts (zend.c:1427) ==14804== by 0x32B28F: php_execute_script (main.c:2494) ==14804== by 0x433D87: do_cli (php_cli.c:974) ==14804== by 0x1DE05A: main (php_cli.c:1344) ==14804== PHP Warning: exif_thumbnail(bleble): Illegal IFD offset in /128889/test.php on line 5 PHP Warning: exif_thumbnail(bleble): File structure corrupted in /128889/test.php on line 5 PHP Warning: exif_thumbnail(bleble): Invalid JPEG file in /128889/test.php on line 5 $ 12/php5, 11sp3/php53, 11/php5 $ USE_ZEND_ALLOC=0 valgrind -q php test.php PHP Warning: exif_thumbnail(bleble): File structure corrupted in /128889/test.php on line 5 PHP Warning: exif_thumbnail(bleble): Invalid JPEG file in /128889/test.php on line 5 $ PATCH http://git.php.net/?p=php-src.git;a=commit;h=8ac6fee8562533a15db90062117210ed28b44fea Can be applied everywhere. AFTER $ USE_ZEND_ALLOC=0 valgrind -q php test.php [.. unrelated uninitialized conditional jumps ..] PHP Warning: exif_thumbnail(bleble): IFD data too short: 0x0009 offset 0x0008 in /128889/test.php on line 5 PHP Warning: exif_thumbnail(bleble): File structure corrupted in /128889/test.php on line 5 PHP Warning: exif_thumbnail(bleble): Invalid JPEG file in /128889/test.php on line 5 $ I run also for other codestreams, there was no change in the output.
Will submit for: 15/php7, 12/php72, 12/php7, 12/php5, 11sp3/php53, 11/php5 and 10sp3/php5.
Also fixed in devel:languages:php:php56.
I believe all fixed.
An update workflow for this issue was started. This issue was rated as low. Please submit fixed packages until 2019-04-18. When done, reassign the bug to security-team@suse.de. https://swamp.suse.de/webswamp/wf/64240
ETOOMUCHCODESTREAMS I would say. Please do not set NEEDINFO when you are reassigning the bug back. Package submitted.
SUSE-SU-2019:14013-1: An update that fixes 11 vulnerabilities is now available. Category: security (moderate) Bug References: 1126711,1126713,1126821,1126823,1127122,1128722,1128883,1128886,1128887,1128889,1128892 CVE References: CVE-2018-20783,CVE-2019-9020,CVE-2019-9021,CVE-2019-9023,CVE-2019-9024,CVE-2019-9637,CVE-2019-9638,CVE-2019-9639,CVE-2019-9640,CVE-2019-9641,CVE-2019-9675 Sources used: SUSE Linux Enterprise Software Development Kit 11-SP4 (src): php53-5.3.17-112.58.1 SUSE Linux Enterprise Server 11-SP4 (src): php53-5.3.17-112.58.1 SUSE Linux Enterprise Point of Sale 11-SP3 (src): php53-5.3.17-112.58.1 SUSE Linux Enterprise Debuginfo 11-SP4 (src): php53-5.3.17-112.58.1 *** NOTE: This information is not intended to be used for external communication, because this may only be a partial fix. If you have questions please reach out to maintenance coordination.
SUSE-SU-2019:0988-1: An update that fixes 5 vulnerabilities is now available. Category: security (moderate) Bug References: 1128883,1128886,1128887,1128889,1128892 CVE References: CVE-2019-9637,CVE-2019-9638,CVE-2019-9639,CVE-2019-9640,CVE-2019-9675 Sources used: SUSE Linux Enterprise Software Development Kit 12-SP4 (src): php72-7.2.5-1.10.1 SUSE Linux Enterprise Software Development Kit 12-SP3 (src): php72-7.2.5-1.10.1 SUSE Linux Enterprise Module for Web Scripting 12 (src): php72-7.2.5-1.10.1 *** NOTE: This information is not intended to be used for external communication, because this may only be a partial fix. If you have questions please reach out to maintenance coordination.
Created attachment 803420 [details] CVE-2019-9638.jpg QA REPRODUCER: put this in xx.php: <?php $s = exif_thumbnail("CVE-2019-9638.jpg"); ?> then run php xx.php PHP Warning: exif_thumbnail(test.jpg): Illegal IFD offset in /var/tmp/bug/1128889.php on line 2 PHP Warning: exif_thumbnail(test.jpg): File structure corrupted in /var/tmp/bug/1128889.php on line 2 PHP Warning: exif_thumbnail(test.jpg): Invalid JPEG file in /var/tmp/bug/1128889.php on line 2
openSUSE-SU-2019:1293-1: An update that solves 11 vulnerabilities and has one errata is now available. Category: security (moderate) Bug References: 1126711,1126713,1126821,1126823,1127122,1128722,1128883,1128886,1128887,1128889,1128892,1129032 CVE References: CVE-2018-20783,CVE-2019-9020,CVE-2019-9021,CVE-2019-9023,CVE-2019-9024,CVE-2019-9637,CVE-2019-9638,CVE-2019-9639,CVE-2019-9640,CVE-2019-9641,CVE-2019-9675 Sources used: openSUSE Leap 42.3 (src): php7-7.0.7-58.1
SUSE-SU-2019:1325-1: An update that fixes 8 vulnerabilities is now available. Category: security (moderate) Bug References: 1128883,1128886,1128887,1128889,1128892,1132837,1132838,1134322 CVE References: CVE-2019-11034,CVE-2019-11035,CVE-2019-11036,CVE-2019-9637,CVE-2019-9638,CVE-2019-9639,CVE-2019-9640,CVE-2019-9675 Sources used: SUSE Linux Enterprise Software Development Kit 12-SP4 (src): php5-5.5.14-109.58.1 SUSE Linux Enterprise Software Development Kit 12-SP3 (src): php5-5.5.14-109.58.1 SUSE Linux Enterprise Module for Web Scripting 12 (src): php5-5.5.14-109.58.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
openSUSE-SU-2019:1503-1: An update that fixes 8 vulnerabilities is now available. Category: security (moderate) Bug References: 1128883,1128886,1128887,1128889,1128892,1132837,1132838,1134322 CVE References: CVE-2019-11034,CVE-2019-11035,CVE-2019-11036,CVE-2019-9637,CVE-2019-9638,CVE-2019-9639,CVE-2019-9640,CVE-2019-9675 Sources used: openSUSE Leap 42.3 (src): php5-5.5.14-118.1
SUSE-SU-2019:1461-1: An update that solves 16 vulnerabilities and has two fixes is now available. Category: security (moderate) Bug References: 1118832,1119396,1126711,1126713,1126821,1126823,1126827,1127122,1128722,1128883,1128886,1128887,1128889,1128892,1129032,1132837,1132838,1134322 CVE References: CVE-2018-19935,CVE-2018-20783,CVE-2019-11034,CVE-2019-11035,CVE-2019-11036,CVE-2019-9020,CVE-2019-9021,CVE-2019-9022,CVE-2019-9023,CVE-2019-9024,CVE-2019-9637,CVE-2019-9638,CVE-2019-9639,CVE-2019-9640,CVE-2019-9641,CVE-2019-9675 Sources used: SUSE Linux Enterprise Module for Web Scripting 15 (src): php7-7.2.5-4.32.1 SUSE Linux Enterprise Module for Packagehub Subpackages 15 (src): php7-7.2.5-4.32.1 SUSE Linux Enterprise Module for Open Buildservice Development Tools 15 (src): php7-7.2.5-4.32.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
openSUSE-SU-2019:1572-1: An update that solves 16 vulnerabilities and has two fixes is now available. Category: security (moderate) Bug References: 1118832,1119396,1126711,1126713,1126821,1126823,1126827,1127122,1128722,1128883,1128886,1128887,1128889,1128892,1129032,1132837,1132838,1134322 CVE References: CVE-2018-19935,CVE-2018-20783,CVE-2019-11034,CVE-2019-11035,CVE-2019-11036,CVE-2019-9020,CVE-2019-9021,CVE-2019-9022,CVE-2019-9023,CVE-2019-9024,CVE-2019-9637,CVE-2019-9638,CVE-2019-9639,CVE-2019-9640,CVE-2019-9641,CVE-2019-9675 Sources used: openSUSE Leap 15.1 (src): php7-7.2.5-lp151.6.3.1
openSUSE-SU-2019:1573-1: An update that solves 16 vulnerabilities and has two fixes is now available. Category: security (moderate) Bug References: 1118832,1119396,1126711,1126713,1126821,1126823,1126827,1127122,1128722,1128883,1128886,1128887,1128889,1128892,1129032,1132837,1132838,1134322 CVE References: CVE-2018-19935,CVE-2018-20783,CVE-2019-11034,CVE-2019-11035,CVE-2019-11036,CVE-2019-9020,CVE-2019-9021,CVE-2019-9022,CVE-2019-9023,CVE-2019-9024,CVE-2019-9637,CVE-2019-9638,CVE-2019-9639,CVE-2019-9640,CVE-2019-9641,CVE-2019-9675 Sources used: openSUSE Leap 15.0 (src): php7-7.2.5-lp150.2.19.1
This is an autogenerated message for OBS integration: This bug (1128889) was mentioned in https://build.opensuse.org/request/show/802846 Factory / php7
This is an autogenerated message for OBS integration: This bug (1128889) was mentioned in https://build.opensuse.org/request/show/802978 Factory / php7
This is an autogenerated message for OBS integration: This bug (1128889) was mentioned in https://build.opensuse.org/request/show/804946 Factory / php7
This is an autogenerated message for OBS integration: This bug (1128889) was mentioned in https://build.opensuse.org/request/show/805287 Factory / php7
This is an autogenerated message for OBS integration: This bug (1128889) was mentioned in https://build.opensuse.org/request/show/1120490 Backports:SLE-15-SP5 / php81
All done, closing.