Cloudanix VulnDB

CVE-2016-10228

Medium · 5.9

CVSS

5.9

EPSS

4.1%

Published

Mar 2, 2017

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in a widely used text-conversion tool can cause image-handling programs to freeze when they receive certain malformed data, potentially disrupting services until the programs are updated.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
High
Impact
Denial Of Service
Component
Library
Class
Improper Input Validation
Remediation
Upgrade
Effort
Medium
Patch risk
Medium

What it actually does

The iconv implementation enters an infinite loop when processing invalid multi-byte sequences under the combination of multiple destination-encoding suffixes (TRANSLATE or IGNORE) plus the -c option, resulting in sustained high CPU usage and denial of service.

Why it matters to the business

Image-processing workloads and any services that invoke iconv for character-set conversion can be hung or driven to excessive resource consumption, causing outages or degraded performance across affected systems; the issue is present in long-supported distributions whose packages have been updated.

How an attack unfolds

An attacker supplies crafted input containing invalid multi-byte sequences to any application path that calls iconv with multiple encoding suffixes and the -c flag; the library never exits the conversion loop, starving the process of CPU and producing a denial of service.

How to fix it

Upgrade ImageMagick to a fixed package version: Debian 11/12/13 to 8:6.9.7.4+dfsg-7; Ubuntu 14.04 LTS to 8:6.7.7.10-6ubuntu3.7; Ubuntu 16.04 LTS to 8:6.8.9.9-7ubuntu5.7. Rebuild or reinstall any locally compiled ImageMagick that statically links the vulnerable iconv code. Restart affected services after upgrade.

How to confirm the fix worked

Verify the installed ImageMagick package version matches one of the listed fixed releases; run iconv directly against a test file containing invalid multi-byte sequences with the -c flag and multiple suffixes and confirm the process exits promptly rather than looping.

Typical attack path

  1. Locate an entry point that invokes iconv with multiple destination suffixes plus -c (e.g., ImageMagick convert or identify on user-supplied files)
  2. Prepare a file or stream containing invalid multi-byte sequences
  3. Submit the malicious input to the affected service
  4. Observe the target process spinning indefinitely at 100 % CPU

How to detect it

Search process listings and performance logs for iconv or ImageMagick convert/identify processes that remain in a running state for an abnormally long time while consuming near-100 % CPU; correlate with inbound file uploads or conversion requests containing non-ASCII or multi-byte content.

  • iconv process at 100% CPU with no output produced
  • ImageMagick convert/identify hanging on user-supplied files with multi-byte content

What your security team should do

  • Apply the distribution-specific fixed ImageMagick packages within the next maintenance window
  • Add package-version checks for ImageMagick to existing vulnerability scanning jobs
  • Monitor for iconv or convert processes exhibiting sustained 100 % CPU without progress
  • Review any custom scripts or services that explicitly call iconv with -c and multiple suffixes

The record

The iconv program in the GNU C Library (aka glibc or libc6) 2.31 and earlier, when invoked with multiple suffixes in the destination encoding (TRANSLATE or IGNORE) along with the -c option, enters an infinite loop when processing invalid multi-byte input sequences, leading to a denial of service.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 glibc-benchtests 0 2.28-151.el8
AlmaLinux:8 glibc-nss-devel 0 2.28-151.el8
AlmaLinux:8 glibc-static 0 2.28-151.el8
AlmaLinux:8 nss_hesiod 0 2.28-151.el8
Debian:10 glibc 0 2.28-10+deb10u2
Debian:11 glibc 0 2.31-3
Debian:12 glibc 0 2.31-3
Debian:13 glibc 0 2.31-3
Mageia:7 glibc 0 2.29-23.mga7
Red Hat:enterprise_linux:8::appstream compat-libpthread-nonshared 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-all-langpacks 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-benchtests 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-common 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-debuginfo 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-debuginfo-common 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-devel 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-headers 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-aa 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-af 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-agr 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ak 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-am 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-an 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-anp 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ar 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-as 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ast 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ayc 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-az 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-be 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-bem 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ber 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-bg 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-bhb 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-bho 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-bi 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-bn 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-bo 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-br 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-brx 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-bs 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-byn 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ca 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ce 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-chr 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-cmn 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-crh 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-cs 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-csb 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-cv 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-cy 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-da 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-de 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-doi 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-dsb 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-dv 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-dz 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-el 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-en 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-eo 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-es 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-et 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-eu 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-fa 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ff 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-fi 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-fil 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-fo 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-fr 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-fur 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-fy 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ga 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-gd 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-gez 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-gl 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-gu 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-gv 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ha 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-hak 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-he 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-hi 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-hif 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-hne 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-hr 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-hsb 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ht 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-hu 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-hy 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ia 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-id 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ig 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ik 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-is 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-it 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-iu 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ja 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ka 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-kab 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-kk 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-kl 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-km 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-kn 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ko 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-kok 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ks 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ku 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-kw 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ky 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-lb 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-lg 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-li 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-lij 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ln 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-lo 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-lt 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-lv 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-lzh 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mag 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mai 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mfe 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mg 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mhr 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mi 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-miq 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mjw 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mk 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ml 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mn 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mni 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mr 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ms 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-mt 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-my 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-nan 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-nb 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-nds 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ne 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-nhn 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-niu 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-nl 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-nn 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-nr 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-nso 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-oc 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-om 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-or 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-os 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-pa 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-pap 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-pl 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ps 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-pt 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-quz 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-raj 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ro 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ru 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-rw 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sa 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sah 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sat 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sc 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sd 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-se 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sgs 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-shn 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-shs 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-si 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sid 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sk 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sl 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sm 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-so 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sq 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sr 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ss 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-st 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sv 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-sw 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-szl 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ta 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-tcy 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-te 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-tg 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-th 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-the 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ti 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-tig 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-tk 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-tl 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-tn 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-to 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-tpi 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-tr 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ts 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-tt 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ug 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-uk 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-unm 0 0:2.28-151.el8
Red Hat:enterprise_linux:8::appstream glibc-langpack-ur 0 0:2.28-151.el8

Related vulnerabilities