Ce qui se passe
NativePHP a publié d'un coup ses sept premiers avis de sécurité, pour
NativePHP Mobile. Cinq sont notés élevé, de 7,4 à 8,1. Tous sont corrigés dans
nativephp/mobile 4.6.1 (ligne 4) et 3.3.11 (ligne 3), et dans le plugin
nativephp/mobile-file 1.0.3. Les versions 1.x et 2.x sont en fin de vie et
ne seront pas corrigées ; l'équipe recommande la 4.
La cause commune : les routes internes /_native/api/* par lesquelles la web view
parle au côté natif n'avaient aucun middleware, et certaines fonctions du pont
acceptaient leur entrée sans contrôle. La plupart des attaques supposent déjà du
JavaScript qui s'exécute dans la web view (XSS, script tiers compromis), et la
complexité d'attaque est généralement jugée élevée.
Les sept avis
| Avis | Gravité | Problème | Corrigé en |
|---|---|---|---|
GHSA-9884-fw9c-mq85 |
élevée (8,1) | le pont des tâches asynchrones permet d'injecter du PHP via un identifiant qui n'est pas un UUID | 4.6.1 |
GHSA-83jv-8h7x-287p |
élevée (7,7) | /_native/api/events instancie toute classe autochargeable citée |
3.3.11, 4.6.1 |
GHSA-3w4w-cchh-qvrw |
élevée (7,7) | File.Move et File.Copy acceptent tout chemin absolu du bac à sable |
4.6.1 |
GHSA-7927-vv5p-fv4f |
élevée (7,7) | mêmes chemins libres dans le plugin mobile-file |
1.0.3 |
GHSA-9g37-88p8-75j2 |
élevée (7,4) | fichiers de tâches asynchrones passés à unserialize() sans authentification |
4.6.1 |
GHSA-76px-r497-93p9 |
modérée (5,9) | traversée de chemin dans /_assets : lecture hors de public/, base SQLite comprise |
3.3.11, 4.6.1 |
GHSA-27jx-7m9x-fx5c |
modérée (4,1) | les builds Android de production écrivent le cookie de session Laravel et le jeton XSRF dans logcat | 3.3.11, 4.6.1 |
Deux corrections changent le comportement :
- les événements dispatchés via
/_native/api/eventsdoivent implémenterNative\Mobile\Events\Contracts\DispatchableFromNative(à ajouter aux événements d'un plugin qui passe par ce point d'entrée) ; - les charges des tâches asynchrones sont maintenant chiffrées et authentifiées
avec la clé d'application : sans
APP_KEY, plus de tâche asynchrone.
Le PHP embarqué
Une application NativePHP emporte sa propre copie de PHP. Les correctifs du
21 octobre (CVE-2026-109618, CVE-2026-109619, tous deux 9,2 en CVSS 4.0)
n'arrivent donc chez vos utilisateurs qu'avec un nouveau build : PHP 8.5.12,
8.4.27 ou 8.3.36. NativePHP a reconstruit tous ses binaires PHP, retiré les
anciens, et publie des hachages et signatures que l'outillage vérifie au
téléchargement (nativephp/desktop 2.4.0, nativephp/mobile 3.3.11, bientôt
4.7.0). Desktop 2.4.0 se passe de nativephp/php-bin, désormais déprécié.
Comment s'y prendre
- Passez
nativephp/mobileen 4.6.1 (3.3.11 sur la ligne 3). - Ligne 4 : désinstallez
nativephp/mobile-file, car le cœur fournit déjàFile.MoveetFile.Copyet les versions du plugin peuvent écraser celles qui sont corrigées. Ligne 3 : plugin en 1.0.3. - Régénérez le projet natif puis reconstruisez :
php artisan native:install --force- Soumettez le build à l'App Store et à Google Play : vos utilisateurs restent vulnérables tant qu'ils n'ont pas installé cette version.
Une divulgation contestée
Six des sept avis ont été publiés avec des chaînes d'exploitation après un article de RedEye Security, le chercheur acd421 disant avoir prévenu par Tidelift ; NativePHP affirme n'avoir rien reçu. Le septième, la fuite dans logcat, a été signalé en privé par aragossa. L'équipe rappelle que les signalements se font par courriel (politique de sécurité) ou via le bouton « Report a vulnerability » de l'onglet Security des dépôts.
Source : Laravel News, 26 octobre 2026. Source en anglais. Billet d'origine : NativePHP.