Open-source project
OWASP/masvs avatar
OWASP/masvs

OWASP MASVS: the mobile app security standard and how to apply it

The OWASP MASVS (Mobile Application Security Verification Standard) is the industry standard for mobile app security.

2,456 stars747 forksPythonCC-BY-SA-4.0

At a glance

What is it?
MASVS is a requirements standard for mobile app security, published as Markdown and built into a web book and PDF. It is a checklist to verify against, not a scanner, and its value depends on which verification level you pick.
Who is it for?
Adopt MASVS if you need a defensible, shared list of mobile security requirements for development, audit or procurement, and you are willing to map it to your own controls. Do not adopt it expecting automated findings: it contains no scanner and no test code, and the testing procedures live in the separate MASTG repository.
Can I use it commercially?
Yes, with credit. CC-BY-SA-4.0 allows commercial use as long as you credit the authors and indicate what you changed. It is written for creative content, so check how it applies to any code.
Is it still maintained?
Yes. The repository last received commits 9 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What MASVS is, and who actually needs it

MASVS stands for Mobile Application Security Verification Standard, an OWASP flagship project. The README describes it as establishing "baseline security and privacy requirements for mobile apps", and it names three audiences explicitly: developers and application owners who want a metric to compare existing apps against, teams that want guidance during development and testing, and procurement staff who need a baseline for verification. Those are three different jobs, and the document serves them with the same artifact, which is both the strength and the friction. A pentester wants testable statements. A procurement officer wants a pass or fail. The standard gives you a requirement set that both can point at, but it does not decide for you what passing means.

The important structural fact is the split across three repositories. MASVS holds the requirements. MASWE, the Mobile Security Weakness Enumeration, holds the weaknesses. MASTG, the Mobile Application Security Testing Guide, holds the tests. The README renders this as a chain: MASVS, then MASWE, then MASTG. If you only read MASVS, you get the "what" without the "how to check", and that is the most common way teams misread the project.

How the requirements are organized, and what the levels mean

The repository is not a code library. The top level contains Document/, controls/, tools/, a book.json, a .gitbook.yaml and an OWASP_MASVS.yaml. The controls/ directory is where the requirement text lives, and tools/ plus the docgenerator workflow turn that source into the published web book and the PDF attached to releases. The Python in the project is build tooling, not a runtime you embed.

Verification levels are the part practitioners argue about most. Search data shows people looking for "masvs l1" and "masvs l2", and the related searches include "masvs checklist", "masvs resilience", "masvs crypto", "masvs storage" and "MASVS NETWORK". Those map to control categories rather than to a single score. The practical consequence: choosing a level is a scoping decision you make before an assessment, not a result the standard hands you. The README does not walk through level selection, so if you need that reasoning you are reading the published book, not the repository README.

Getting the standard and using it on a real app

MASVS is consumed as a document, not installed as a dependency. The README points to the web edition at mas.owasp.org/MASVS, the latest PDF under the repository releases, and the checklists published from the MASTG repository. There is no package manager step in the README.

What the README does give is the download link for the latest PDF and the link to the latest Mobile App Security Checklists. Those two artifacts are what you actually work from. The PDF is the standard as a document; the checklists are the working form you tick through during an assessment.

For an actual pass over an app, the sequence is: pick your verification level, open the checklist, walk the storage, crypto and network categories against one app, and record each item as pass, fail or not applicable. The standard tells you what to record; it does not record anything for you, and the README does not document a command line for doing it.

The limitation: MASVS is a requirements document, not a testing tool

The single most common wrong expectation is that cloning this repository gives you something that inspects an APK or an IPA. It does not. There is no scanner, no instrumentation, no test harness in the repository layout. The README is explicit that requirements are "tested in the OWASP Mobile Application Security Testing Guide", which is a separate project. If your goal is automated findings in CI, MASVS is the wrong artifact and MASTG is where the procedures live.

A second limitation is versioning. The most recent tagged release is v2.1.0, dated 2024-01-18, while the repository has been pushed to since. The last push was on 2026-09-21. That means master can contain wording that no release captures. If your audit report cites a control identifier, say which version you assessed against, because a reader checking master may find different text than the release you used. The CHANGELOG.md at the repository root is the place to confirm what moved between versions.

A third constraint is licensing. The project is CC BY-SA 4.0. Quoting requirements into an internal checklist is one thing; redistributing a modified derivative is another, and the share-alike term travels with it. That is a real consideration for vendors who want to embed the text in a commercial product.

MASVS versus building your own mobile security checklist

The realistic alternative is not a competing open standard so much as a homegrown checklist, often assembled from platform vendor guidance, past penetration test findings and internal incident history. The difference in approach is worth being precise about. A homegrown list is tuned to your threat model and your stack, and it can be updated the day you learn something new. MASVS is tuned to consensus: it is maintained by OWASP contributors, reviewed publicly through pull requests, and its identifiers are stable enough that an external auditor, a client or a regulator can reference them without needing your internal document.

The trade-off runs both ways. A homegrown checklist will not be recognized by a third party, and it will drift as the people who wrote it leave. MASVS will not know that your app stores tokens in a particular way, or that your payment flow has a specific regulatory obligation. Teams that get value from it typically use MASVS as the outer frame and keep a short internal delta file for the requirements it does not cover. What MASVS buys you is the shared vocabulary and the ability to say "we verified against level X" and have that mean something to someone outside your company.

Maintenance, upgrades and licence implications

The repository is not archived and the last push was on 2026-09-21, so the project is being touched. That said, the release cadence is slow by software standards: v2.0.0 landed on 2023-04-01, v2.1.0 on 2024-01-18, and there has been no tag since. For a standard, slow is arguably correct, because churn in requirement identifiers breaks audit trails. For a team that wants MASVS to track new platform behaviours quickly, it means master is where the newer text lives and releases lag behind it.

Upgrade cost is mostly editorial. Moving between major versions can renumber or reword controls, which invalidates mappings in your internal tracker and in any tool that stores MASVS identifiers. Budget for a re-mapping pass rather than a code migration. Read CHANGELOG.md before you move, and check whether the controls you cite still exist under the same identifier.

On licensing, the repository carries CC BY-SA 4.0, and License.md is at the root. CC licences are not designed for software, and this project applies one to a document, which is a reasonable fit. The share-alike condition is the part to think about: if you publish a modified version of the standard, the licence terms follow the derivative. This is a description of the licence, not legal advice; if you plan to redistribute a modified form commercially, that is a question for your own counsel.

Editorial conclusion

Adopt MASVS if you need a defensible, shared list of mobile security requirements for development, audit or procurement, and you are willing to map it to your own controls. Do not adopt it expecting automated findings: it contains no scanner and no test code, and the testing procedures live in the separate MASTG repository. Before you commit, verify which verification level fits the app, confirm that the controls and requirements in the controls/ directory match the version your tooling cites, and check whether the current master branch text is what your auditor will reference, since the latest tagged release is v2.1.0 from 2024-01-18.

Frequently asked questions

What does MASVS stand for?

It stands for Mobile Application Security Verification Standard. It is an OWASP flagship project that establishes baseline security and privacy requirements for mobile apps.

What is MASVS?

MASVS is a standard you can use as a metric to compare existing mobile apps, as guidance during development and testing, and as a procurement baseline for mobile app security verification. The requirements are broken down in MASWE and tested in the MASTG.

Is OWASP MASVS a tool I can run against my app?

No. The repository contains the requirement text in controls/ plus build tooling that generates the web book and PDF. Testing procedures live in the separate OWASP MASTG project, and the README points to the checklists published from the MASTG repository.

Which version of OWASP MASVS should I cite in an audit report?

The latest tagged release is v2.1.0, dated 2024-01-18, while the repository has been pushed to since, with the last push on 2026-09-21. State which version you assessed against, because master text can differ from the release.

What licence does OWASP MASVS use?

The project is licensed CC BY-SA 4.0, and License.md is at the repository root. The share-alike term applies to modified redistributions of the standard.

Official sources

  1. License: CC-BY-SA-4.0
  2. OWASP/masvs on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/owasp-masvs.svg)](https://hysenlabs.com/projects/owasp-masvs)