Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Tools/GitHubGitHub/lazybear8372/cve-2023-31014_lab
Android SecurityVulnerability AnalysisExploitationMobile App PentestingMobile SecurityLearning & EducationLabs & Practice
GitHublazybear8372/cve-2023-31014_lab

CVE-2023-31014_Lab

Educational Android lab for CVE-2023-31014 implicit intent hijacking

View Repository
10 days agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2023-31014 Implicit Intent Hijacking Lab

An educational Android Lab created based on the public report of CVE-2023-31014 in NVIDIA GeForce NOW for Android. It does not include NVIDIA source code, actual Action strings, or real authentication credentials.

Facts confirmed from the public report

  • Target: NVIDIA GeForce NOW Android mobile/TV app
  • Affected versions: 6.00.32705137 ~ 6.04.33108832
  • Fixed version: 6.05.33200069
  • Classification: CWE-927, Use of Implicit Intent for sensitive communication
  • Vulnerable structure: The Game Launcher component sends an implicit Intent for the Streamer component, and a malicious app on the same device can handle it
  • Public impact: Limited information disclosure, denial of service, potential code execution
  • Reporter: Oversecured

The exposure categories publicly mentioned by Oversecured are stream configuration, user account, and game information.

Lab reproduction scope

CategoryImplementation
Game Launchervictim/MainActivity
Normal Streamervictim/StreamerActivity
Malicious Handlerattacker/HijackActivity
Information disclosureDisplays fictitious game, account, session, and stream configuration Extras
Denial of serviceThe attack Activity handles the Intent, so the normal Streamer does not start
FixExplicit Intent specifying the exact StreamerActivity

The official materials do not disclose the actual component types. Therefore, this Lab uses an Activity → Activity model that is easy to learn. Since the actual chain leading to code execution was also not disclosed, code execution is not reproduced.

Structure

root@kitploit:~
Victim Game Launcher
        │
        │ lab.cve202331014.action.START_STREAM
        │ implicit Intent + virtual session extras
        ▼
Android Intent Resolver
        ├── Victim Normal Streamer
        └── Attacker HijackActivity

The safe path applies the following restriction to the same Intent.

root@kitploit:~
intent.setClass(this, StreamerActivity.class);
startActivity(intent);

Build

Requirements:

  • JDK 17
  • Android SDK 36
  • Internet connection or Gradle/Android Gradle Plugin cache
root@kitploit:~
./gradlew :victim:assembleDebug :attacker:assembleDebug

Generated APKs:

root@kitploit:~
victim/build/outputs/apk/debug/victim-debug.apk
attacker/build/outputs/apk/debug/attacker-debug.apk

Verified prebuilt APKs are also included in dist/.

root@kitploit:~
dist/cve-2023-31014-victim-debug.apk
dist/cve-2023-31014-attacker-debug.apk

Installation and Practice

Run only on an emulator or an authorized test device.

root@kitploit:~
adb install -r attacker/build/outputs/apk/debug/attacker-debug.apk
adb install -r victim/build/outputs/apk/debug/victim-debug.apk
  1. Open CVE Lab Attacker once to check the role of the attack app.
  2. Open CVE Lab Victim.
  3. Verify that the handling candidates are shown as Normal Streamer and CVE Lab Attacker.
  4. Press Start Game Vulnerably.
  5. Select CVE Lab Attacker in the Android app chooser.
  6. Verify that the virtual session Extras appear in the attack app and the normal Streamer does not run.
  7. Go back and press Start Game Safely.
  8. Verify that Normal Streamer runs without the app chooser.

If you specified an app to always use in the app chooser, perform Clear defaults in that app's system settings and then practice again.

Key code comparison

Vulnerable:

root@kitploit:~
Intent intent = new Intent(ACTION_START_STREAM);
intent.putExtra(EXTRA_STREAM_CONFIG, demoConfig);
startActivity(intent); // no package/component

Fixed:

root@kitploit:~
Intent intent = new Intent(ACTION_START_STREAM);
intent.putExtra(EXTRA_STREAM_CONFIG, demoConfig);
intent.setClass(this, StreamerActivity.class);
startActivity(intent);

If the design requires Android to choose one of several components in the same vendor package, setPackage() can also be used to block external apps. For a single target, an explicit component is clearer.

Differences between the report and the Lab

The following values were intentionally created because they were not disclosed.

  • lab.cve202331014.action.START_STREAM Action
  • Activity-based Launcher/Streamer
  • demo_* Extra names and values
  • 203.0.113.10 documentation IP address

Therefore, this project reproduces the vulnerability principle and fix of the CVE, but it is not an actual GeForce NOW attack PoC.

References

  • NVIDIA Security Bulletin: https://nvidia.custhelp.com/app/answers/detail/a_id/5476
  • NVD CVE-2023-31014: https://nvd.nist.gov/vuln/detail/CVE-2023-31014
  • CWE-927: https://cwe.mitre.org/data/definitions/927.html
Download Tool