Fragment Injection ‑haavoittuvuuden korjaaminen

Nämä tiedot on tarkoitettu kehittäjille, joiden sovellukseen tai sovelluksiin on lisätty PreferenceActivity-luokkia tavalla, joka saattaa ne alttiiksi Fragment Injection ‑haavoittuvuudelle. Tällainen lisäystapa saattaa sallia haitallisten ulkoisten sovellusten lataavan Fragment-arvoja, joiden pitäisi olla yksityisiä.

Mistä on kyse?

1.3.2017 alkaen Google Play alkoi estää kaikkien sellaisten sovellusten tai päivitysten julkaisun, joiden PreferenceActivity-luokat saattavat olla alttiita Fragment Injection ‑haavoittuvuudelle. Lue lisää Play Consolen ilmoituksesta. Play Consolessa näytettyjen määräaikojen jälkeen korjaamattomia tietosuojahaavoittuvuuksia sisältävät sovellukset saatetaan poistaa Google Playsta.

Edellyttää toimia​

  1. Kirjaudu sisään Play Consoleen ja siirry ilmoitusosioon, niin näet, mihin sovelluksiin ongelmat vaikuttavat, ja määräajat niiden ratkaisemiselle.
  2. Päivitä kyseiset sovellukset ja korjaa haavoittuvuus.
  3. Lähetä sovellusten päivitetyt versiot.

Sovellus tarkastetaan lähetyksen yhteydessä uudelleen. Tässä voi kestää useita tunteja. Jos sovellus läpäisee tarkastuksen ja sen julkaisu onnistuu, lisätoimia ei tarvita. Jos sovellus ei läpäise tarkastusta, uutta sovellusversiota ei julkaista ja sinulle ilmoitetaan tästä sähköpostilla.

Lisätietoja

Määritä luettelossa PreferenceActivity-kohdan arvoksi exported=false niissä kohdissa, joissa voit. Tämä estää tuntemattomia sovelluksia lähettämästä tavoitteita tähän luokkaan.

Jos haavoittuvainen PreferenceActivity on vietävä tuntemattomiin sovelluksiin, määritä, miksi luokka sisältää haavoittuvuuksia ja ryhdy tarvittaviin toimenpiteisiin. Vaihtoehtoja on kaksi:

  1. isValidFragment-arvon virheellinen lisäystapa:

Tarkista, sisältääkö tai periikö haavoittuvuuksia sisältävä luokka isValidFragment-arvon lisäystavan, joka palauttaa tosi-arvon kaikissa koodipoluissa. Jos tämä arvo on tosi, päivitä luokka niin, että se tarkistaa sallittujen Fragment-luokkien luettelon. Esimerkki: Jos PreferenceActivity-arvon pitäisi sallia MyFragment-luokat, mutta ei muita Fragment-arvoja, lisää tällainen tarkistus:

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

         }

  1. targetSdkVersion on pienempi kuin 19 eikä siihen ole lisätty isValidFragment-arvoa:

Jos sovellus määrittää tällä hetkellä luettelonsa targetSdkVersion-arvoksi alle 19 ja haavoittuvaiseen luokkaan ei ole lisätty isValidFragment-arvoa, haavoittuvuus periytyy PreferenceActivity-arvosta.

Jos kehittäjä haluaa korjata tämän, hänen on päivitettävä targetSdkVersion-arvoksi 19 tai korkeampi. Jos targetSdkVersion-arvoa ei voi päivittää, kehittäjän on lisättävä isValidFragment kohdassa 1) kuvatulla tavalla, jotta sallitut Fragment-luokat voidaan tarkistaa.

Sovellusten täytyy noudattaa myös kehittäjien jakelusopimusta ja sisältökäytäntöä

Autamme mielellämme

Voit esittää teknisiä kysymyksiä haavoittuvuudesta Stack Overflow ‑sivustolla. Merkitse kysymyksesi android-security-tagilla. Jos tarvitset lisätietoja korjausvaiheista, ota yhteyttä kehittäjien tukitiimiimme.

false
Päävalikko
2374138606113216693
true
Ohjekeskushaku
true
true
true
true
true
5016068
false
false