
Reproducteur pour CVE-2023-3635 dans Okio 2.9.0, démontrant comment le catalogue de versions de React Native épingle une dépendance vulnérable, affectant les applications Android.
Reproducteur pour facebook/react-native#58148 :
Le propre packages/react-native/gradle/libs.versions.toml de React Native épingle okhttp = "4.9.2" /
okio = "2.9.0", et okio 2.9.0 est affecté par
CVE-2023-3635 / GHSA-w33c-445m-f8w7,
corrigé dans okio 3.4.0.
Aucun code d'application n'a été modifié pour produire cela. ReproducerApp est la sortie complètement inchangée
de npx @react-native-community/cli init, générée avec [email protected] (le latest actuel de ce modèle,
correspondant au 0.87.0-main de main). L'épingle vulnérable provient du propre catalogue de versions de React Native,
et non de quoi que ce soit qu'une application consommatrice fait.
Pour reproduire, depuis ReproducerApp/android :
./gradlew :app:dependencies --configuration releaseRuntimeClasspath | grep -iE "okhttp|okio"
Sortie (exécution complète enregistrée dans gradle-dependencies-output.txt) :
com.squareup.okhttp3:okhttp-urlconnection:4.9.2
com.squareup.okhttp3:okhttp:4.9.2 (*)
com.squareup.okio:okio:2.9.0 (*)
com.squareup.okhttp3:okhttp:3.14.9 -> 4.9.2
com.squareup.okio:okio:2.8.0 -> 2.9.0
okhttp/okio atterrissent sur le releaseRuntimeClasspath réellement livré de l'application (pas seulement les outils de test),
tirés de manière transitive via com.facebook.fresco:imagepipeline-okhttp3 et le propre artefact react-android de React Native.
Ceci est votre nouveau projet Reproducteur React Native.
Ce projet a été créé avec npx @react-native-community/cli init et est une application React Native vanilla.
[!IMPORTANT]
Assurez-vous d'avoir terminé la Configuration de l'environnement React Native afin d'avoir un environnement de travail fonctionnel localement.
Tout d'abord, vous devrez démarrer Metro, le bundler JavaScript qui est fourni avec React Native.
Pour démarrer Metro, exécutez la commande suivante depuis la racine de votre projet React Native :
# en utilisant npm
npm start
# OU en utilisant Yarn
yarn start
Laissez Metro Bundler s'exécuter dans son propre terminal. Ouvrez un nouveau terminal depuis la racine de votre projet React Native. Exécutez la commande suivante pour démarrer votre application Android ou iOS :
# en utilisant npm
npm run android
# OU en utilisant Yarn
yarn android
Tout d'abord, assurez-vous d'installer les dépendances avec :
cd ios && bundle install && bundle exec pod install
Ensuite, vous pouvez exécuter l'application iOS avec :
# en utilisant npm
npm run ios
# OU en utilisant Yarn
yarn ios
Si tout est configuré correctement, vous devriez voir votre nouvelle application s'exécuter dans votre Émulateur Android ou Simulateur iOS peu de temps après, à condition d'avoir configuré correctement votre émulateur/simulateur.
C'est une façon d'exécuter votre application — vous pouvez également l'exécuter directement depuis Android Studio et Xcode respectivement.
Maintenant que vous avez exécuté l'application avec succès, modifions-la.
Ouvrez App.tsx dans l'éditeur de texte de votre choix et modifiez quelques lignes.
Pour Android : Appuyez deux fois sur la touche R ou sélectionnez "Reload" dans le Menu Développeur (Ctrl + M (sur Windows et Linux) ou Cmd ⌘ + M (sur macOS)) pour voir vos modifications !
Pour iOS : Appuyez sur Cmd ⌘ + R dans votre Simulateur iOS pour recharger l'application et voir vos modifications !