fix CVE-2020-0452

(cherry picked from commit afef81fb7a1bfe1d0588c283e123979cac2743ad)
This commit is contained in:
zhouwenpei 2024-01-15 06:28:49 +00:00 committed by openeuler-sync-bot
parent 6e34385447
commit c9b0cb4933
2 changed files with 42 additions and 1 deletions

View File

@ -0,0 +1,37 @@
Backported of:
From 9266d14b5ca4e29b970fa03272318e5f99386e06 Mon Sep 17 00:00:00 2001
From: Marcus Meissner <marcus@jet.franken.de>
Date: Thu, 5 Nov 2020 09:50:08 +0100
Subject: [PATCH] fixed a incorrect overflow check that could be optimized
away.
inspired by:
https://android.googlesource.com/platform/external/libexif/+/8e7345f3bc0bad06ac369d6cbc1124c8ceaf7d4b
https://source.android.com/security/bulletin/2020-11-01
CVE-2020-0452
Index: libexif-0.6.21/libexif/exif-entry.c
===================================================================
--- libexif-0.6.21.orig/libexif/exif-entry.c
+++ libexif-0.6.21/libexif/exif-entry.c
@@ -28,6 +28,7 @@
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
+#include <stdint.h>
#include <string.h>
#include <time.h>
#include <math.h>
@@ -1376,8 +1377,8 @@ exif_entry_get_value (ExifEntry *e, char
case EXIF_TAG_XP_KEYWORDS:
case EXIF_TAG_XP_SUBJECT:
{
- /* Sanity check the size to prevent overflow */
- if (e->size+sizeof(unsigned short) < e->size) break;
+ /* Sanity check the size to prevent overflow. Note EXIF files are 64kb at most. */
+ if (e->size >= 65536 - sizeof(uint16_t)*2) break;
/* The tag may not be U+0000-terminated , so make a local
U+0000-terminated copy before converting it */

View File

@ -1,7 +1,7 @@
Name: libexif
Summary: Library for extracting extra information from image files
Version: 0.6.21
Release: 25
Release: 26
License: LGPLv2+
URL: https://libexif.github.io/
Source0: https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2
@ -23,6 +23,7 @@ Patch6012: backport-CVE-2020-0181_CVE-2020-0198.patch
Patch6013: backport-CVE-2020-0093.patch
Patch6014: backport-fuzz-stack-overflow.patch
Patch6015: backport-fuzz-timeout-and-out-of-memory.patch
Patch6016: backport-CVE-2020-0452.patch
BuildRequires: autoconf automake doxygen gettext-devel libtool pkgconfig git
@ -80,6 +81,9 @@ make check
%doc libexif-api.html NEWS
%changelog
* Mon Jan 15 2024 zhouwenpei <zhouwenpei1@h-partners.com> - 0.6.21-26
- fix CVE-2020-0452
* Tue Oct 18 2022 wangkerong <wangkerong@h-partners.com> - 0.6.21-25
- fix fuzz test error