Repository Analysis

OWASP/mastg

The OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.

9.0 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of OWASP/mastg, a Python project with 13,047 GitHub stars. SynthScan v2.0 examined 94,974 lines of code across 1777 source files, recording 177 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 9.0 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

9.0
Adjusted Score
9.0
Raw Score
100%
Time Factor
2026-07-10
Last Push
13.0K
Stars
Python
Language
95.0K
Lines of Code
1.8K
Files
177
Pattern Hits
2026-07-14
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 41HIGH 8MEDIUM 8LOW 120

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 177 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hallucination Indicators41 hits · 565 pts
SeverityFileLineSnippetContext
CRITICALtests/android/MASVS-PLATFORM/MASTG-TEST-0028.md288com.android.internal.os.ZygoteInit.main(ZygoteInit.java)CODE
CRITICALdemos/ios/MASVS-NETWORK/MASTG-DEMO-0154/output.txt250 0x00004490 0x00004490 GLOBAL FUNC 0 _$s10MASTestApp24SecureURLSessionDelegateC10urlSession_10didReceive17comCODE
CRITICALdemos/ios/MASVS-NETWORK/MASTG-DEMO-0154/output.txt351 0x00018968 0x00018968 GLOBAL FUNC 0 _$s10MASTestApp24SecureURLSessionDelegateC10urlSession_10didReceive17comCODE
CRITICALdemos/ios/MASVS-NETWORK/MASTG-DEMO-0154/output.txt458 0x00004000 0x00004000 GLOBAL FUNC 0 _$s10MASTestApp26InsecureURLSessionDelegateC10urlSession_10didReceive17cCODE
CRITICALdemos/ios/MASVS-NETWORK/MASTG-DEMO-0154/output.txt559 0x0001892c 0x0001892c GLOBAL FUNC 0 _$s10MASTestApp26InsecureURLSessionDelegateC10urlSession_10didReceive17cCODE
CRITICALdemos/ios/MASVS-NETWORK/MASTG-DEMO-0154/output.txt690 0x000041f8 0x000041f8 LOCAL FUNC 0 _$s10MASTestApp26InsecureURLSessionDelegateC10urlSession_10didReceive17cCODE
CRITICALdemos/ios/MASVS-NETWORK/MASTG-DEMO-0154/output.txt795 0x00004780 0x00004780 LOCAL FUNC 0 _$s10MASTestApp24SecureURLSessionDelegateC10urlSession_10didReceive17comCODE
CRITICALdemos/ios/MASVS-NETWORK/MASTG-DEMO-0155/output.txt250 0x00004000 0x00004000 GLOBAL FUNC 0 _$s10MASTestApp28InsecureWKNavigationDelegateC7webView_10didReceive17comCODE
CRITICALdemos/ios/MASVS-NETWORK/MASTG-DEMO-0155/output.txt351 0x00017b5c 0x00017b5c GLOBAL FUNC 0 _$s10MASTestApp28InsecureWKNavigationDelegateC7webView_10didReceive17comCODE
CRITICALdemos/ios/MASVS-NETWORK/MASTG-DEMO-0155/output.txt480 0x000041f8 0x000041f8 LOCAL FUNC 0 _$s10MASTestApp28InsecureWKNavigationDelegateC7webView_10didReceive17comCODE
CRITICALdemos/android/MASVS-STORAGE/MASTG-DEMO-0060/output.json67 "com.google.crypto.tink.integration.android.SharedPrefKeysetWriter.write(SharedPrefKeysetWriter.java:70)",CODE
CRITICALdemos/android/MASVS-STORAGE/MASTG-DEMO-0060/output.json68 "com.google.crypto.tink.KeysetHandle.writeWithAssociatedData(KeysetHandle.java:869)",CODE
CRITICALdemos/android/MASVS-STORAGE/MASTG-DEMO-0060/output.json69 "com.google.crypto.tink.KeysetHandle.write(KeysetHandle.java:858)",CODE
CRITICALdemos/android/MASVS-STORAGE/MASTG-DEMO-0060/output.json105 "com.google.crypto.tink.integration.android.SharedPrefKeysetWriter.write(SharedPrefKeysetWriter.java:70)",CODE
CRITICALdemos/android/MASVS-STORAGE/MASTG-DEMO-0060/output.json106 "com.google.crypto.tink.KeysetHandle.writeWithAssociatedData(KeysetHandle.java:869)",CODE
CRITICALdemos/android/MASVS-STORAGE/MASTG-DEMO-0060/output.json107 "com.google.crypto.tink.KeysetHandle.write(KeysetHandle.java:858)",CODE
CRITICAL…mos/android/MASVS-PLATFORM/MASTG-DEMO-0082/output.json7com.android.webview.chromium.ContentSettingsAdapter.setDomStorageEnabled(Native Method)CODE
CRITICAL…mos/android/MASVS-PLATFORM/MASTG-DEMO-0082/output.json20com.android.webview.chromium.e.deleteAllData(Native Method)CODE
CRITICALdemos/android/MASVS-PRIVACY/MASTG-DEMO-0081/output.json30 "com.google.firebase.analytics.FirebaseAnalytics.logEvent(Native Method)",CODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt2703-26 11:33:23.415 2340 2407 D StrictMode: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuaCODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt3503-26 11:33:23.415 2340 2407 D StrictMode: at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpCODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt3903-26 11:33:23.415 2340 2407 D StrictMode: at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTraCODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt4003-26 11:33:23.415 2340 2407 D StrictMode: at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTraCODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt4103-26 11:33:23.415 2340 2407 D StrictMode: at androidx.compose.ui.input.pointer.NodeParent.dispatchMainEventPass(HitPCODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt4203-26 11:33:23.415 2340 2407 D StrictMode: at androidx.compose.ui.input.pointer.HitPathTracker.dispatchChanges(HitPatCODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt4603-26 11:33:23.415 2340 2407 D StrictMode: at androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent(AndrCODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt5503-26 11:33:23.415 2340 2407 D StrictMode: at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorViewCODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt5603-26 11:33:23.415 2340 2407 D StrictMode: at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWiCODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt5803-26 11:33:23.415 2340 2407 D StrictMode: at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.javaCODE
CRITICAL…os/android/MASVS-RESILIENCE/MASTG-DEMO-0037/output.txt8503-26 11:33:23.415 2340 2407 D StrictMode: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)CODE
CRITICAL…SVS-RESILIENCE/MASTG-DEMO-0101/MastgTest_reversed.java56 at jadx.core.dex.visitors.regions.SwitchOverStringVisitor.restoreSwitchOverString(SwitchOverStringVisitor.java:109)CODE
CRITICAL…SVS-RESILIENCE/MASTG-DEMO-0101/MastgTest_reversed.java57 at jadx.core.dex.visitors.regions.SwitchOverStringVisitor.visitRegion(SwitchOverStringVisitor.java:66)CODE
CRITICAL…SVS-RESILIENCE/MASTG-DEMO-0101/MastgTest_reversed.java58 at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:77)CODE
CRITICAL…SVS-RESILIENCE/MASTG-DEMO-0101/MastgTest_reversed.java59 at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:82)CODE
CRITICAL…SVS-RESILIENCE/MASTG-DEMO-0101/MastgTest_reversed.java60 at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterative(DepthRegionTraversal.java:31)CODE
CRITICAL…SVS-RESILIENCE/MASTG-DEMO-0101/MastgTest_reversed.java61 at jadx.core.dex.visitors.regions.SwitchOverStringVisitor.visit(SwitchOverStringVisitor.java:60)CODE
CRITICALdemos/android/MASVS-CRYPTO/MASTG-DEMO-0072/output.txt14 kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)CODE
CRITICALdemos/android/MASVS-CRYPTO/MASTG-DEMO-0072/output.txt29 kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)CODE
CRITICALdemos/android/MASVS-CRYPTO/MASTG-DEMO-0072/output.txt45 kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)CODE
CRITICALdemos/android/MASVS-CRYPTO/MASTG-DEMO-0072/output.txt61 kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)CODE
CRITICALtechniques/android/MASTG-TECH-0173.md51com.android.internal.os.ZygoteInit.main(ZygoteInit.java)CODE
Structural Annotation Overuse53 hits · 109 pts
SeverityFileLineSnippetContext
LOWknowledge/ios/MASVS-RESILIENCE/MASTG-KNOW-0140.md32 // Step 1: Resolve the binary base address using dladdrCOMMENT
LOWknowledge/ios/MASVS-RESILIENCE/MASTG-KNOW-0140.md42 // Step 2: Parse the Mach-O header to locate the __TEXT/__text sectionCOMMENT
LOWknowledge/ios/MASVS-RESILIENCE/MASTG-KNOW-0140.md81 // Step 3: Compute SHA-256 over the __text section and compare it to the reference valueCOMMENT
LOW.github/workflows/check-duplicate-ids.yml77 // Step 1: Try to clean up existing commentsCOMMENT
LOW.github/workflows/check-duplicate-ids.yml111 // Step 2: Check if we need to post new notificationsCOMMENT
LOW.github/workflows/check-duplicate-ids.yml119 // Step 3: Post notifications for each duplicateCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift4 // Step 1: Retrieve the documents directory URLCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift6 // Step 2: Create a file URL for "secret.txt" in the documents directoryCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift8 // Step 3: Define the content to write to the fileCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift12 // Step 4: Write the content to the fileCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift14 // Step 5: Set the 'isExcludedFromBackup' attribute to trueCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift18 // Step 6: Log a success messageCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift21 // Step 7: Log an error message if an exception occursCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0014/MastgTest.swift7 // Step 1: Use a hardcoded ECDSA P-256 private key (32 bytes for P-256) in bytesCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0014/MastgTest.swift26 // Step 2: Sign the data with the hardcoded private keyCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0014/MastgTest.swift32 // Step 3: Verify the signature with the public keyCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift6 // Step 1: Load P256 Private Key from Embedded DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift19 // Step 2: Extract Public KeyCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift22 // Step 3: Create Sample DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift29 // Step 4: Sign the DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift32 // Step 5: Verify the SignatureCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift35 // Step 6: Convert Keys and Signature to Hex StringsCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift41 // Step 7: Construct an Output MessageCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift48 // Step 8: Update SwiftUI State VariableCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0013/MastgTest.swift7 // Step 1: Use a hardcoded RSA private key (in DER format)COMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0013/MastgTest.swift80 // Step 2: Sign the data with the hardcoded private keyCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0013/MastgTest.swift94 // Step 3: Verify the signature with the public keyCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift6 // Step 1: Load RSA Private Key from Embedded DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift35 // Step 2: Extract Public KeyCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift42 // Step 3: Create Sample DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift49 // Step 4: Sign the DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift61 // Step 5: Verify the SignatureCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift68 // Step 6: Convert Keys and Signature to Hex StringsCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift77 // Step 7: Construct an Output MessageCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift84 // Step 8: Update SwiftUI State VariableCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0011/MastgTest.swift7 // Step 1: Generate an RSA key pair with a 1024-bit key sizeCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0011/MastgTest.swift48 // Step 2: Sign the data with the private keyCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0011/MastgTest.swift62 // Step 3: Verify the signature with the public keyCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0018/decompiled-o1-review.swift6 // Step 1: Define the key and input textCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0018/decompiled-o1-review.swift10 // Step 2: Convert key and input text to DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0018/decompiled-o1-review.swift17 // Step 3: Set up the output bufferCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0018/decompiled-o1-review.swift21 // Step 4: Perform encryptionCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0018/decompiled-o1-review.swift43 // Step 5: Check the result and return encrypted dataCOMMENT
LOWtechniques/ios/MASTG-TECH-0146.md13## Step 1: Obtain the IPACOMMENT
LOWtechniques/ios/MASTG-TECH-0146.md17## Step 2: Obtain a Developer Provisioning ProfileCOMMENT
LOWtechniques/ios/MASTG-TECH-0146.md21## Step 3: Inject the Frida GadgetCOMMENT
LOWtechniques/ios/MASTG-TECH-0146.md25## Step 4: Sign the IPACOMMENT
LOWtechniques/ios/MASTG-TECH-0146.md29## Step 5: Install the AppCOMMENT
LOWtechniques/ios/MASTG-TECH-0146.md33## Step 6: Launch the App in Debug ModeCOMMENT
LOWtechniques/android/MASTG-TECH-0026.md13## Step 1: Obtain the APKCOMMENT
LOWtechniques/android/MASTG-TECH-0026.md17## Step 2: Inject the Frida GadgetCOMMENT
LOWtechniques/android/MASTG-TECH-0026.md21## Step 3: Sign the APKCOMMENT
LOWtechniques/android/MASTG-TECH-0026.md25## Step 4: Install the AppCOMMENT
Verbosity Indicators40 hits · 82 pts
SeverityFileLineSnippetContext
LOW.github/workflows/check-duplicate-ids.yml77 // Step 1: Try to clean up existing commentsCOMMENT
LOW.github/workflows/check-duplicate-ids.yml111 // Step 2: Check if we need to post new notificationsCOMMENT
LOW.github/workflows/check-duplicate-ids.yml119 // Step 3: Post notifications for each duplicateCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift4 // Step 1: Retrieve the documents directory URLCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift6 // Step 2: Create a file URL for "secret.txt" in the documents directoryCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift8 // Step 3: Define the content to write to the fileCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift12 // Step 4: Write the content to the fileCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift14 // Step 5: Set the 'isExcludedFromBackup' attribute to trueCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift18 // Step 6: Log a success messageCOMMENT
LOW…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift21 // Step 7: Log an error message if an exception occursCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0014/MastgTest.swift7 // Step 1: Use a hardcoded ECDSA P-256 private key (32 bytes for P-256) in bytesCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0014/MastgTest.swift26 // Step 2: Sign the data with the hardcoded private keyCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0014/MastgTest.swift32 // Step 3: Verify the signature with the public keyCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift6 // Step 1: Load P256 Private Key from Embedded DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift19 // Step 2: Extract Public KeyCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift22 // Step 3: Create Sample DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift29 // Step 4: Sign the DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift32 // Step 5: Verify the SignatureCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift35 // Step 6: Convert Keys and Signature to Hex StringsCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift41 // Step 7: Construct an Output MessageCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0014/decompiled-o1-review.swift48 // Step 8: Update SwiftUI State VariableCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0013/MastgTest.swift7 // Step 1: Use a hardcoded RSA private key (in DER format)COMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0013/MastgTest.swift80 // Step 2: Sign the data with the hardcoded private keyCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0013/MastgTest.swift94 // Step 3: Verify the signature with the public keyCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift6 // Step 1: Load RSA Private Key from Embedded DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift35 // Step 2: Extract Public KeyCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift42 // Step 3: Create Sample DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift49 // Step 4: Sign the DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift61 // Step 5: Verify the SignatureCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift68 // Step 6: Convert Keys and Signature to Hex StringsCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift77 // Step 7: Construct an Output MessageCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0013/decompiled-o1-review.swift84 // Step 8: Update SwiftUI State VariableCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0011/MastgTest.swift7 // Step 1: Generate an RSA key pair with a 1024-bit key sizeCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0011/MastgTest.swift48 // Step 2: Sign the data with the private keyCOMMENT
LOWdemos/ios/MASVS-CRYPTO/MASTG-DEMO-0011/MastgTest.swift62 // Step 3: Verify the signature with the public keyCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0018/decompiled-o1-review.swift6 // Step 1: Define the key and input textCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0018/decompiled-o1-review.swift10 // Step 2: Convert key and input text to DataCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0018/decompiled-o1-review.swift17 // Step 3: Set up the output bufferCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0018/decompiled-o1-review.swift21 // Step 4: Perform encryptionCOMMENT
LOW…ASVS-CRYPTO/MASTG-DEMO-0018/decompiled-o1-review.swift43 // Step 5: Check the result and return encrypted dataCOMMENT
Magic Placeholder Names6 hits · 45 pts
SeverityFileLineSnippetContext
HIGHtechniques/ios/MASTG-TECH-0133.md32$ dependency-check --enableExperimental -f SARIF --nvdApiKey <YOUR-API-KEY> -s Package.resolvedCODE
HIGHtechniques/ios/MASTG-TECH-0133.md32$ dependency-check --enableExperimental -f SARIF --nvdApiKey <YOUR-API-KEY> -s Package.resolvedCODE
HIGHtechniques/ios/MASTG-TECH-0133.md38$ dependency-check --enableExperimental -f SARIF --nvdApiKey <YOUR-API-KEY> -s Podfile.lockCODE
HIGHtechniques/ios/MASTG-TECH-0133.md38$ dependency-check --enableExperimental -f SARIF --nvdApiKey <YOUR-API-KEY> -s Podfile.lockCODE
HIGHtechniques/ios/MASTG-TECH-0133.md44$ dependency-check --enableExperimental -f SARIF --nvdApiKey <YOUR-API-KEY> -s Cartfile.resolvedCODE
HIGHtechniques/ios/MASTG-TECH-0133.md44$ dependency-check --enableExperimental -f SARIF --nvdApiKey <YOUR-API-KEY> -s Cartfile.resolvedCODE
Excessive Try-Catch Wrapping5 hits · 8 pts
SeverityFileLineSnippetContext
LOW…b/instructions/mastg-mitmproxy-scripts.instructions.md64 except Exception:CODE
MEDIUM.github/skills/mastg-assign-ids/scripts/fix_ids.py33 print(f"Error: expected OLD=NEW, got: {arg}", file=sys.stderr)CODE
MEDIUM…SVS-STORAGE/MASTG-DEMO-0019/decompiled-o1-review.swift22 print("Error creating file: \(error)")CODE
LOWdemos/android/MASVS-PLATFORM/MASTG-DEMO-0030/server.py16 except Exception as e:CODE
LOWsrc/scripts/tools_healthcheck.py15 except Exception:CODE
Fake / Example Data8 hits · 8 pts
SeverityFileLineSnippetContext
LOW…0x04e-Testing-Authentication-and-Session-Management.md136{"sub":"1234567890","name":"John Doe","admin":true}CODE
LOW…b/instructions/mastg-mitmproxy-scripts.instructions.md52 "name": "John Doe",CODE
LOW…LATFORM/MASTG-DEMO-0097/MastgTestWebView_reversed.java94 editor$iv.putString(HintConstants.AUTOFILL_HINT_NAME, "John Doe").putString(NotificationCompat.CATEGORY_EMAIL, "CODE
LOW…oid/MASVS-PLATFORM/MASTG-DEMO-0097/MastgTestWebView.kt199 putString("name", "John Doe")STRING
LOW…/MASVS-PRIVACY/MASTG-DEMO-0009/MastgTest_reversed.java38 final Map SENSITIVE_DATA = MapsKt.mapOf(TuplesKt.to("precise_location_latitude", "37.7749"), TuplesKt.to("precisCODE
LOW…mos/android/MASVS-PRIVACY/MASTG-DEMO-0009/MastgTest.kt20 "name" to "John Doe",CODE
LOW…MASVS-PRIVACY/MASTG-DEMO-0009/mitm_sensitive_logger.py8 "name": "John Doe",CODE
LOWtechniques/android/MASTG-TECH-0100.md20 "name": "John Doe",CODE
Modern AI Meta-Vocabulary3 hits · 7 pts
SeverityFileLineSnippetContext
MEDIUM.github/instructions/mastg-rules.instructions.md14- [https://academy.semgrep.dev/courses/secure-guardrails](https://academy.semgrep.dev/courses/secure-guardrails)CODE
MEDIUM.github/workflows/moderator.yml136 # neutralize fence markers and obvious injection scaffoldingCOMMENT
MEDIUM.github/workflows/config/url-checker-config.json148 "pattern": "^https://academy.semgrep.dev/courses/secure-guardrails"CODE
Over-Commented Block6 hits · 6 pts
SeverityFileLineSnippetContext
LOW.github/workflows/codeql-analysis.yml1# For most projects, this workflow file will not need changing; you simply needCOMMENT
LOW.github/workflows/codeql-analysis.yml61COMMENT
LOWdemos/ios/MASVS-PRIVACY/MASTG-DEMO-0126/run.sh1#!/bin/bashCOMMENT
LOWdemos/ios/MASVS-PRIVACY/MASTG-DEMO-0126/MastgTest.swift1// SUMMARY: An app that shows a 3-second countdown popup when Start is tapped. The onlyCOMMENT
LOW…s/ios/MASVS-RESILIENCE/MASTG-DEMO-0150/MastgTest.swift1// SUMMARY: This sample stores sensitive data in a file in the app's Documents directory andCOMMENT
LOWtechniques/android/MASTG-TECH-0156.md41 // ** addr: 0x5961e0, size: 0x230COMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/check-duplicate-ids.yml38 # Create a file with the list of new files in this PRCOMMENT
MEDIUMsrc/scripts/tools_healthcheck.py30# Create the markdown tableCOMMENT
AI Response Leakage1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHknowledge/android/MASVS-PLATFORM/MASTG-KNOW-0018.md88[`setAllowFileAccess`](https://developer.android.com/reference/android/webkit/WebSettings.html#setAllowFileAccess%28boolCODE
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH.github/PULL_REQUEST_TEMPLATE.md28Undisclosed use of AI tools will result in the PR being closed. Large rewrites or bulk changes generated by AI require eCODE
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOW.github/scripts/check_duplicate_ids.py76 # Check if key is in folder name or folder is in keyCOMMENT
LOW.github/scripts/check_duplicate_ids.py156 # Check if this ID already existsCOMMENT
Hyper-Verbose Identifiers3 hits · 3 pts
SeverityFileLineSnippetContext
LOWdemos/android/MASVS-PLATFORM/MASTG-DEMO-0082/script.js1function enumerateDeleteAllDataMethod() {CODE
LOWdemos/android/MASVS-PLATFORM/MASTG-DEMO-0082/script.js6function enumerateSetDomStorageEnabledMethod() {CODE
LOWsrc/scripts/yaml_to_excel.py143def create_security_requirements_sheet(wb):CODE
Deep Nesting3 hits · 3 pts
SeverityFileLineSnippetContext
LOWsrc/scripts/testcase_diff.py3CODE
LOWsrc/scripts/yaml_to_excel.py143CODE
LOWsrc/scripts/combine_data_for_checklist.py57CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMdemos/android/MASVS-CRYPTO/MASTG-DEMO-0058/MastgTest.kt65 .setRandomizedEncryptionRequired(false) // For demonstration purposes, we disable randomized encryptionCODE
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOWsrc/scripts/yaml_to_excel.py1CODE
LOWsrc/scripts/excel_styles_and_validation.py3CODE