Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2019-2107 | Kitploit
Outils/GitHubGitHub/infiniteloopers/cve-2019-2107
Sécurité AndroidAnalyse des VulnérabilitésExploitationFuzzingDéveloppement de Charges UtilesCheval de Troie d'Accès à DistanceExploitation de Binaires
GitHubinfiniteloopers/cve-2019-2107

CVE-2019-2107

Voir le dépôt
43il y a 7 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2019-2107

CVE-2019-2107

CVE-2019-2107 - fait peur. Vous vous souvenez encore des vulnérabilités Stagefright et les bugs PNG... Avec CVE-2019-2107, le décodeur/codec s'exécute sous l'utilisateur mediacodec et avec une vidéo correctement "craftée" (avec les tuiles activées - ps_pps->i1_tiles_enabled_flag) vous pouvez potentiellement faire du RCE. Le codec affecté est HVEC (alias H.265 et MPEG-H Part 2) #exploit #rce #android #stagefright #cve

alt text

Plus d'infos

LineageOS (Android):

root@kitploit:~
02-11 20:18:48.238   260   260 D FFmpegExtractor: ffmpeg detected media content as 'video/hevc' with confidence 0.08
02-11 20:18:48.239   260   260 I FFMPEG  : [hevc @ 0xb348f000] Invalid tile widths.
02-11 20:18:48.239   260   260 I FFMPEG  : [hevc @ 0xb348f000] PPS id out of range: 0
02-11 20:18:48.240   260   260 I FFMPEG  : [hevc @ 0xb348f000] Invalid tile widths.
02-11 20:18:48.240   260   260 I FFMPEG  : [hevc @ 0xb348f000] PPS id out of range: 0
02-11 20:18:48.240   260   260 I FFMPEG  : [hevc @ 0xb348f000] Error parsing NAL unit #5.
02-11 20:18:48.240   260   260 I FFMPEG  : [hevc @ 0xb348f000] Invalid tile widths.

mplayer (ordinateur portable)

root@kitploit:~
id: 0
[hevc @ 0x7f0bf58a7560]Decoding VPS
[hevc @ 0x7f0bf58a7560]Main profile bitstream
[hevc @ 0x7f0bf58a7560]Decoding SPS
[hevc @ 0x7f0bf58a7560]Main profile bitstream
[hevc @ 0x7f0bf58a7560]Decoding VUI
[hevc @ 0x7f0bf58a7560]Decoding PPS
[hevc @ 0x7f0bf58a7560]Invalid tile widths.
[hevc @ 0x7f0bf58a7560]Decoding SEI
[hevc @ 0x7f0bf58a7560]Skipped PREFIX SEI 5
[hevc @ 0x7f0bf58a7560]PPS id out of range: 0
[hevc @ 0x7f0bf58a7560]Error parsing NAL unit #5.
Error while decoding frame!

Ceci l'arrête lorsque la largeur de tuile est plus grande qu'autorisée : https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/blob/ebf648d490448d511b5fe970d76040169e65ef74/libavcodec/hevc_ps.c#L1526

Donc les vérifications sont là.

Sur Android stock/Google, je pense qu'il utilisera libhevc, pas ffmpeg, lors de l'utilisation de VideoPlayer.

https://www.droidviews.com/enjoy-hevc-h-265-video-playback-on-android/

J'ai le codec Google :

OMX.google.hevc.decoder

Je me demande cependant pourquoi il ne plante pas....

Je joins la vidéo (videopoc.mp4) qui devrait déclencher cette condition :

root@kitploit:~
if (value >= ps_sps->i2_pic_wd_in_ctb - start)
+                        {
+                            return IHEVCD_INVALID_HEADER;
+                        }

Peut-être que quelqu'un aura plus de chance.

Plus d'infos 2

Whouu hooo.... j'ai réussi :)

La preuve de concept est dans hevc-crash-poc.mp4, les autres vidéos sont pour des lecteurs non Android.

Hvec-"fright" est possible. Vous pouvez posséder le mobile en regardant une vidéo avec une charge utile. Dans mon exemple, je n'ai pas inclus de vraie charge utile.

root@kitploit:~
07-13 21:50:59.000  3351  3351 I /system/bin/tombstoned: received crash request for pid 24089
07-13 21:50:59.006 24089 24089 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-13 21:50:59.006 24089 24089 F DEBUG   : Build fingerprint: 'samsung/hero2ltexx/hero2lte:8.0.0/R16NW/G935FXXS4ESC3:user/release-keys'
07-13 21:50:59.006 24089 24089 F DEBUG   : Revision: '9'
07-13 21:50:59.006 24089 24089 F DEBUG   : ABI: 'arm64'
07-13 21:50:59.006 24089 24089 F DEBUG   : pid: 24089, tid: 24089, name: media.extractor  >>> mediaextractor <<<
07-13 21:50:59.006 24089 24089 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x7ccb800050
07-13 21:50:59.009 24089 24089 F DEBUG   :     x0   00000000ffffff36  x1   0000000000000000  x2   00000000000000f0  x3   0000000000000001
07-13 21:50:59.009 24089 24089 F DEBUG   :     x4   0000000000000001  x5   0000007ccb5df1b8  x6   0000007cc927363e  x7   0000007cc8e7bd04
07-13 21:50:59.009 24089 24089 F DEBUG   :     x8   0000000000004170  x9   0000000000004160  x10  00000000ffffffff  x11  0000007ccb7fbef0
07-13 21:50:59.010 24089 24089 F DEBUG   :     x12  0000007ccb5d3ce0  x13  000000000000001e  x14  0000000000000003  x15  0000000000000001
07-13 21:50:59.010 24089 24089 F DEBUG   :     x16  0000007cc99f5f50  x17  0000007ccb88885c  x18  0000007ccb566225  x19  0000007ccb562020
07-13 21:50:59.010 24089 24089 F DEBUG   :     x20  0000007ccb4f18a0  x21  0000007ccb468c6c  x22  0000000000000000  x23  0000000000000006
07-13 21:50:59.010 24089 24089 F DEBUG   :     x24  000000000000001e  x25  0000000000000094  x26  0000000000004160  x27  0000000000000001
07-13 21:50:59.010 24089 24089 F DEBUG   :     x28  0000007ccb55e750  x29  0000007fd6d39d90  x30  0000007cc99c4438
07-13 21:50:59.010 24089 24089 F DEBUG   :     sp   0000007fd6d39d20  pc   0000007cc99c44c4  pstate 0000000080000000
07-13 21:50:59.013 24089 24089 F DEBUG   : 
--

alt text

Plus d'infos 3

Si vous voulez aller plus loin pour obtenir un RCE (Remote Command Execution)

Je commencerais par obtenir une ROM LineageOS avec une build de débogage (si vous n'avez pas de téléphone cible rooté, le désassemblage donne des maux de tête, cela devrait être beaucoup plus facile à travailler), en changeant éventuellement l'allocateur mémoire pour jemalloc (pour cibler les mobiles plus récents). Vous pouvez le définir dans votre BoardConfig :

device/samsung/msm8226-common/BoardConfigCommon.mk

root@kitploit:~
# Memory
#MALLOC_IMPL := dlmalloc
MALLOC_IMPL := jemalloc

J'ai découvert que mon Samsung utilisait jemalloc, je ne suis pas sûr pour les mobiles plus anciens/récents. Espérons que ce soit pareil.

Plus d'infos sur jemalloc/dlmalloc : https://blog.nsogroup.com/a-tale-of-two-mallocs-on-android-libc-allocators-part-1-dlmalloc/

Ici j'ai supprimé les vérifications de libavcodec.so

Test sur LineageOS 7.1.2 sur Samsung S3 Neo+

Comme on peut le voir, le mediaplayer a planté/disparu... avec des événements non traités (MediaPlayer: mediaplayer went away with unhandled events). Je ne sais pas pourquoi il ne plante pas nativement. L'objectif serait ici de prendre le flux d'exécution. Bonne chance !

root@kitploit:~
02-25 16:44:15.008  2954  2954 I art     : Explicit concurrent mark sweep GC freed 4988(521KB) AllocSpace objects, 1(40KB) LOS objects, 25% free, 6MB/8MB, paused 484us total 43.471ms
02-25 16:44:15.011  2954  2954 I art     : Starting a blocking GC Explicit
02-25 16:44:15.046  2954  2954 I art     : Explicit concurrent mark sweep GC freed 435(17KB) AllocSpace objects, 0(0B) LOS objects, 24% free, 6MB/8MB, paused 523us total 34.700ms
02-25 16:44:15.083  2954  2954 W MediaPlayer: mediaplayer went away with unhandled events
Télécharger l’outil