Key inside the app lets anyone send push messages to all customers
Admin & Söhne iOS app · customer messaging service
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
Description
The app contains the secret key for the service that sends push messages to customers. Anyone who downloads the app from the App Store can extract it. The key is not limited to the app’s own needs: it can send any message to every customer’s phone and read the customer contact list with names, email addresses and mobile numbers.
Steps to reproduce
- Download the public app from the App Store onto a test device.
- Inspect the app package: the key for the messaging service is stored in it.
- Check the key’s rights with the client’s admin: it can read all customer contacts and send to all devices.
App package: settings file holds the messaging key (shortened)
Key rights: read customer contacts = yes · send to all devices = yes
Customer contacts readable: 48,210 (name, email, mobile) Business impact
A fake “Your parcel is waiting, please pay 1.99 EUR” message from your own app reaches every customer. Customers lose money and trust, your ratings and support desk take the hit, and the readable contact list is a GDPR breach, reportable within 72 hours.
Remediation
Revoke the key now and issue a new one that stays on the server. Let the app ask your own backend to send messages, never the messaging service directly. Give each key only the rights it needs, and add a check to the build that fails when a secret is found in the app package.
OWASP Mobile Top 10 2024: M1 Improper Credential Usage · CWE-798 (Use of Hard-coded Credentials) · OWASP MASVS-STORAGE