Reference detail
Apps with hard-coded usernames and passwords
Android apps shipping an actual credential pair — embedded in a URL as user:password@host, or as a pre-built HTTP Basic authorization header. Unlike an API key, this is a login.
Mapped findings are review signals. Interpret each app’s build, scan date and coverage before drawing a conclusion. Historical verification describes only its recorded scan time.
What this finding means
This category is narrower than a leaked API key and usually worse. It covers a username and password compiled into the app: a URL written as https://user:password@host/path, or an Authorization header built from a Base64-encoded credential pair.
We have recorded this in 89 apps. Base64 is an encoding, not encryption; recovering the password from the header is a single decode step.
Where an API key is typically scoped to one service and designed to be revocable, a credential pair is a login to an account. It often carries whatever that account can do, which is frequently more than the app needs.
Why a credential in a URL is worse than one in a header
A password placed in a URL escapes the request. URLs are written to server access logs, proxy logs and reverse-proxy traces; they appear in Referer headers sent to third parties, in browser and CLI history, and in crash and analytics payloads that capture the failing request.
That means the password is not only in the APK. It has probably been copied into systems you do not control and cannot clean, which changes remediation: rotation is mandatory rather than precautionary.
How to fix it
- Rotate the credential first. It should be considered public from the moment it shipped, and no obfuscation changes that.
- Replace shared credentials with per-device or per-user tokens obtained at runtime, so a compromise is revocable for one client rather than all of them.
- If a backend genuinely requires Basic auth, terminate it on a server you control and have the app authenticate to that server instead.
- Never carry credentials in the URL. If a credential must be sent, put it in a header over TLS.
- Check who else uses the account before rotating: a shared service account is why these persist, and an uncoordinated rotation breaks something else.
How we detect it, and what we store
The URL-embedded form and the Basic authorization header form are matched structurally, and the Basic header is decoded only far enough to confirm it carries a credential pair rather than something else.
The value itself is never stored. What is recorded is the scheme prefix, a coarse length bucket and a non-reversible fingerprint — enough to deduplicate the finding and to recognise the same artifact across apps, and not enough to reconstruct the password from anything we publish.
Mapped checks & review guidance (2)
Hard-coded credentials in a URL
Remove the embedded username:password, rotate the credential, and authenticate to the endpoint with short-lived per-user tokens instead.
Browse this categoryHard-coded HTTP Basic credentials
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryApps with mapped findings
89 matching apps · Counts below include only this page’s mapped finding types.
Movoto | Real Estate
com.movoto.movotoBuild 15.8.3 · 2026-10-03 21:56 UTC1 matching category · 1 matching occurrence
Honor of Kings
com.levelinfinite.sgameGlobalBuild 12.1.1.4 · 2026-09-30 23:24 UTC1 matching category · 1 matching occurrence
Indeed Job Search
com.indeed.android.jobsearchBuild 296.1.0 · 2026-09-30 21:59 UTC1 matching category · 1 matching occurrence
Sezzle: Buy Now, Pay Later
com.sezzle.sezzlemobileBuild 5.3.11 · 2026-09-30 19:48 UTC1 matching category · 1 matching occurrence
Verizon Protect
com.securityandprivacy.android.verizon.vmsBuild 9.1.2-1 · 2026-09-30 16:17 UTC1 matching category · 2 matching occurrences
SpeedTop VPN: Fast & Secure
io.speedtop.appBuild 1.2.1 · 2026-09-30 11:59 UTC1 matching category · 1 matching occurrence
SeaBank
id.co.bankbkemobile.digitalbankBuild 3.52.4 · 2026-09-30 03:21 UTC1 matching category · 3 matching occurrences
Immersive Translate
com.immersivetranslate.transtifyBuild 2.6.11 · 2026-09-29 21:52 UTC1 matching category · 1 matching occurrence
piZap: Design & Edit Photos
com.digitalpalette.pizapBuild 6.8.3 · 2026-09-29 17:18 UTC1 matching category · 1 matching occurrence
JCPenney – Shopping & Deals
com.jcpBuild 11.51.0 · 2026-09-29 12:33 UTC1 matching category · 1 matching occurrence
Joist Invoice & Estimate App
com.joistapp.android.joistBuild 3.86.0 · 2026-09-29 09:43 UTC1 matching category · 1 matching occurrence
Smart Home Manager
com.att.shmBuild 2.2607.501 · 2026-09-15 16:07 UTC1 matching category · 1 matching occurrence
Match Dating App: Chat & Meet
com.match.android.matchmobileBuild 26.15.00 · 2026-09-14 11:07 UTC1 matching category · 1 matching occurrence
Stir: Single Parent Dating App
com.match.android.stirBuild 25.08.02 · 2026-09-11 05:59 UTC1 matching category · 1 matching occurrence