Corriger les failles liées à l'injection de fragments

Ces informations sont destinées aux développeurs d'applications contenant une mise en œuvre non sécurisée des classes PreferenceActivity qui les rendent vulnérables à l'injection de fragments. Cette mise en œuvre peut permettre à une application externe malveillante de charger des fragments qui devraient être privés.

Que se passe-t-il ?

Depuis le 1er mars 2017, Google Play bloque la publication de nouvelles applications ou de mises à jour d'applications dont les classes PreferenceActivity peuvent être vulnérables à l'injection de fragments. Veuillez consulter la notification dans la console PlayPassé les délais indiqués dans la console Play, toutes les applications présentant des failles de sécurité non résolues pourront être supprimées de Google Play.

Action requise

  1. Connectez-vous à la console Play et accédez à la section "Alertes" pour savoir quelles sont les applications concernées et connaître les délais à respecter pour résoudre ces problèmes.
  2. Mettez à jour les applications concernées et corrigez la faille.
  3. Envoyez les versions mises à jour des applications concernées.

Votre application sera à nouveau examinée. Le processus peut durer plusieurs heures. Si votre application est approuvée et publiée, aucune autre action de votre part n'est requise. Si l'application n'est pas approuvée, sa nouvelle version ne sera pas publiée et vous recevrez une notification par e-mail.

Informations supplémentaires

Dans votre fichier manifeste, définissez si possible la valeur exported=false pour la classe PreferenceActivity. Cela empêchera les applications étrangères d'envoyer des intents à cette classe.

Si la classe PreferenceActivity doit être exportée vers des applications étrangères, déterminez la raison pour laquelle elle est vulnérable et prenez les mesures appropriées. Deux situations peuvent se présenter :

  1. La mise en œuvre de isValidFragment est incorrecte :

Vérifiez que la classe vulnérable contient ou hérite d'une mise en œuvre de isValidFragment qui renvoie la valeur "True" pour tous les chemins de code. Si tel est le cas, mettez à jour la classe pour vérifier la présence d'une liste de classes Fragment autorisées. Par exemple, si la classe PreferenceActivity doit autoriser les classes MyFragment et aucun autre fragment, mettez en œuvre une vérification de ce type :

         public boolean isValidFragment(String fragmentName) {
            return MyFragment.class.getName().equals(fragmentName);

         }

  1. La version targetSdkVersion est inférieure à 19 et ne contient aucune mise en œuvre de isValidFragment :

Si une valeur inférieure à 19 est actuellement définie pour la version targetSdkVersion dans le fichier manifeste de l'application et si la classe vulnérable ne contient aucune mise en œuvre de isValidFragment, la faille est héritée de PreferenceActivity.

Pour corriger la faille, les développeurs doivent mettre à jour la version targetSdkVersion afin d'utiliser la version 19 ou ultérieure. S'ils ne sont pas en mesure de mettre à jour la version targetSdkVersion, les développeurs doivent mettre en œuvre isValidFragment comme décrit dans la section 1) pour vérifier la présence de classes de fragments autorisées.

Sachez que les applications doivent également respecter le Contrat relatif à la distribution (pour les développeurs) et le Règlement relatif au contenu

Nous sommes là pour vous aider

Si vous avez des questions techniques sur cette faille, vous pouvez publier un message sur le site Stack Overflow en utilisant le tag "android-security". Si vous souhaitez obtenir des éclaircissements sur les étapes à suivre pour résoudre ce problème, vous pouvez contacter notre équipe d'assistance pour les développeurs.

Ces informations vous-ont elles été utiles ?

Comment pouvons-nous l'améliorer ?
false
Menu principal
304936541963752084
true
Rechercher dans le centre d'aide
true
true
true
true
true
5016068
false
false