← All articles

SaaS

The first penetration test for a small SaaS: what $5,000 buys, what $25,000 adds, and what buyers read in the report

November 4, 2026

$5,000 is two to four tester days and $25,000 is nine to twenty. Published 2026 prices, a worked budget for a small SaaS, how to spot a scan with a cover page, what goes in a letter of attestation, and how to show your findings to a customer.

Hands on a laptop keyboard and mouse, green terminal text on the screen

Say a customer's security team asks for a penetration test, and you ask around. One firm quotes $2,400. Another quotes $24,000. Both will send you a PDF with "Penetration Test Report" on the front, and from the outside you can't tell which one the customer will accept.

The difference is mostly tester days, and whether anyone logged in. On one firm's book of 55 tests, 70% of the web application tests turned up at least one High or Critical sign-in or permissions finding. That is the kind of bug where customer A opens customer B's invoice by changing a number in a URL. A scanner has no idea that invoice 4417 isn't yours to see.

This piece turns published 2026 prices into days, shows what those days buy, works through one small SaaS, and covers the part most price guides skip: what the buyer reads, and how to show them your findings without losing the deal. Prices were checked on 4 November 2026. Nearly all of them come from firms that sell testing, so read them as asking prices and get two quotes on your own scope.

What vendors publish for one web app in 2026

Most firms still say "contact us". These ones put a number on a page you can read:

text
Vendor and product                  Published price           What the price covers
----------------------------------  ------------------------  ------------------------------------
Bugcrowd Standard Pen Test, Small   $5,000                    1 low-complexity web app, or 45 API
                                                              endpoints
Bugcrowd, Medium                    $8,000                    1 medium-complexity web app, or 75
                                                              API endpoints
Bugcrowd, Large                     $15,000                   1 high-complexity web app, or 150
                                                              API endpoints
Blaze, simple SaaS                  $4,999-$8,999             3-7 testing days
Blaze, medium SaaS                  $8,999-$20,000            1.5-2 weeks
Blaze, complex SaaS                 $20,000-$30,000+          2-3+ weeks
Astra Pentest Expert                $5,999 a year             Manual test by certified testers, 2
                                                              re-scans
Astra Pentest Auto                  $2,999 a year             Autonomous test, 1 re-scan
Intruder same-day pentest           $3,500; 4 for $12,000     AI-powered, white box, unlimited
                                                              retesting
Cobalt Autonomous Pentest           $3,500 until 31 Dec 2026  Promotional; human tests are credit-
                                                              based, 1 credit = 8 hours, no public
                                                              credit price
Secure Ideas                        $340 an hour              Billing rate; its general range is
                                                              $10,000-$45,000

Sources: Bugcrowd on AWS Marketplace (12-month contract, retesting for 12 months with one report update on web, network and API tests), Blaze, Astra, Intruder, Cobalt, Secure Ideas. Astra's page contradicts itself on the Auto re-scan count: the table says 1, its FAQ says 2.

Turn the price into days

A quote means little until you divide it by a day rate. Here are the published rates we could find, applied to the two budgets. Blaze's indicative US rate is $1,600 to $2,800 a day. Stingrai's index reads 30 UK government rate cards (median £1,000, about $1,364) and US federal ceiling rates from GSA (median $157.03 an hour). The federal figure is a contract ceiling for labour, so it isn't a commercial quote, but it's a useful floor.

text
Day rate                            Per day   $5,000 buys   $25,000 buys
----------------------------------  --------  ------------  -------------
US federal ceiling, median (8 h)    $1,256    4.0 days      19.9 days
UK G-Cloud median, £1,000           $1,364    3.7 days      18.3 days
Blaze US, low end                   $1,600    3.1 days      15.6 days
Secure Ideas, $340 x 8 h            $2,720    1.8 days      9.2 days
Blaze US, high end                  $2,800    1.8 days      8.9 days

So $5,000 is two to four tester days and $25,000 is nine to twenty. Writing the report comes out of those days. Allow about one for it, and a $5,000 test can leave under one full day of actual testing at the top rates.

What $5,000 buys and what $25,000 adds

No standard defines either tier, and firms cut scope differently. This table is our reading of the published tiers above, so treat it as what to expect and check it against your statement of work.

text
                   About $5,000                            About $25,000
-----------------  --------------------------------------  --------------------------------------
Tester days        2-4                                     9-20
Target             One simple app, or about 45 API         One complex app with its API, usually
                   endpoints                               plus cloud or mobile
User roles         One or two, if authenticated at all     Every role, including admin and
                   (ask)                                   support
Tenant isolation   A sample of endpoints                   Each object type, across two or more
                                                           tenants
Business logic     What fits in the time left              Billing, invites, exports, plan limits
Cloud setup        Not included                            Often included as a config review
Source code        Rarely                                  Sometimes (white box)
Retest             Check: may be an add-on                 Usually one round, check the window
Who it satisfies   A small or mid-size buyer asking for a  A larger buyer, a regulated buyer, a
                   date and a letter                       SOC 2 auditor with a wide scope

You can build the top tier from Bugcrowd's list prices. A Large web test ($15,000) plus a cloud configuration test ($5,000) comes to $20,000. A Medium web test ($8,000), a cloud test ($5,000) and mobile on both platforms ($13,000) comes to $26,000. On that list, the extra money goes on more targets as much as on a longer look at the same one.

Strike's summary of cheap quotes names what falls off first: multi-role permissions testing, chained findings and business logic, which it calls most of the price gap. Those are exactly the things a small multi-tenant SaaS is most likely to get wrong. A cheap quote with no logged-in multi-role testing leaves out the part you were buying.

Black box, grey box, white box: buy grey

The PCI Security Standards Council's guidance puts it plainly: grey-box and white-box tests "yield more accurate results" than a pure black-box test, and black box "may require more time, money, and resources". It was written for card data, but the logic carries over.

text
Type        Tester gets                  Good for                        Weak on
----------  ---------------------------  ------------------------------  ---------------------------
Black box   A URL                        The public surface, sign-up,    Everything behind login,
                                         password reset                  unless the tester gets in
Grey box    Accounts in each role, API   Permissions and tenant          Flaws only visible in the
            docs                         isolation: the likely SaaS      code
                                         bugs
White box   The above plus source code,  Tight budgets (less guessing),  Costs more; you must be
            architecture                 AI-generated code nobody has    willing to share code
                                         read

The OWASP testing guide says the best way to test for insecure object references is "having at least two (often more) users". So give the tester two accounts in each of two separate tenants, with data in them. Spending your two days watching a tester try to break in from outside isn't good value when your customers log in every day, and paying someone to guess your API routes is expensive when you can hand them the docs.

Scan with a cover page: how to spot one

PCI's guidance gives the cleanest line. A scan is mostly automated and takes "several seconds to several minutes per scanned host". A test is "a manual process", and engagements "may last days or weeks". Its report says how a finding can be exploited and how far, whereas a scan lists known weaknesses by score. Scanners are a normal part of a real test; the problem is a scan that is the whole deliverable.

text
Warning sign                                      What a real test looks like
------------------------------------------------  ----------------------------------------------
Complex app promised in 24-48 hours, human-       Blaze lists 3-7 testing days for a simple SaaS
tested                                            app
Nobody can say how many tester days are included  A number of days and a named tester in the
                                                  statement of work
No accounts requested                             Accounts in each role, delivered before the
                                                  start date
Findings are CVE numbers and version banners      Steps an engineer can reproduce without
                                                  calling the tester
No evidence, requests or screenshots              Request and response for each finding, what
                                                  was reached
Fix advice reads "update to the latest version"   Advice about your code path and your roles
No retest offered                                 At least one round, in writing, with a window
No sample report before you sign                  A redacted sample on request

The list draws on Blaze's warning signs, plus our own additions on samples and fix advice. As a rule of thumb, SecurityMetrics says a test under $4,000 is "probably not a real penetration test" (as quoted on Strike's comparison page). That line now has an awkward exception, below.

The new $3,500 option

AI-driven tests are the real change in 2026 pricing. Intruder and Cobalt both publish $3,500, and Intruder offers a refund if an auditor rejects the report. They are sold as tests, not scans, and Intruder's reads your repository.

Whether they satisfy your buyer is a separate question. We found no published data on how buyers or auditors treat them, and a questionnaire asking for an independent manual test may not count one. The sentiment among security people is mixed: in Cobalt's 2026 survey of 455 professionals, 9% back fully automated pentesting, down from 29% a year earlier, and 47% prefer a hybrid. Cobalt sells human testing as well as the autonomous kind, so read that with care. Our advice: run one as preparation if it fits your budget, then ask the buyer or the auditor in writing before you rely on it as your only evidence. One email can save you $3,500 or a lost month.

A worked budget for one small SaaS

Take a made-up but typical product: one web app, three roles (owner, member, support admin), 60 API endpoints, card billing through a payment provider, on AWS, no mobile app. The day plan below is our own estimate, so use it to argue with a quote and not as a rate card.

text
Work                                                      Days
--------------------------------------------------------  -----
Walkthrough, mapping the app and API                      0.5
Sign-in, sessions, password reset, SSO                    1.0
Role matrix and tenant isolation across 60 endpoints      1.5
Input handling, file upload, injection                    0.5
Business logic: billing, invites, exports, plan limits    1.0
Report and calls                                          1.0
Total                                                     5.5
text
5.5 days x $1,600 = $8,800
5.5 days x $2,800 = $15,400

Check against list prices: Bugcrowd Medium (75 endpoints) $8,000;
Blaze medium SaaS $8,999-$20,000.

So the honest number is roughly $9,000 to $15,000, a bit above the $8,000 we used in the SOC 2 budget. Then there is your own time. One firm's median is 8 findings per test, with 54% of web findings rated High or Critical. Assuming four hours a finding, at the $100 an hour used in that same budget:

text
Your side                                           Hours
--------------------------------------------------  -------
Test environment, seeded accounts, scope table      8
Answering questions during the test                 4
Fixing 8 findings at 4 hours each (assumption)      32
Retest coordination                                 4
Letter and the buyer pack                           2
Total, 50 hours at $100                             $5,000

All in, about $13,800 to $20,400 for the first year's test. If one $20,000-a-year customer is waiting on it, that's easy. If nobody has asked, send the self-assessment and a plan instead, as described in the security questionnaire article, and keep the money until someone does.

Before you pay a tester by the day, clear what you can find yourself: 25 baseline controls (MFA, backups, patching, incident response and more) as yes, partly or not yet, with a note and a date on each.

Open the security baseline self-assessment

What to put in the statement of work

Stingrai's template makes a good point: "Counts, not adjectives, are what price and schedule are built on." Send every firm the same table, so you can compare the quotes:

text
Asset         Environment  Auth          Roles  Size
------------  -----------  ------------  -----  --------------
Web app       Staging      Email + SSO   3      42 screens
REST API      Staging      Bearer token  3      60 endpoints
Tenants       Staging      -             -      2, seeded data
Out of scope  Payment provider, email provider, production data

Then get these lines in writing:

Tester days and who. The number, and the tester's name and certifications.

Retest. Stingrai calls this "the clause most often quietly billed as an extra", and suggests 90 days from the final report as the floor. Standalone retests run $2,000 to $5,000 by one published range. Blaze includes one round within 90 days on its Essentials and Assurance packages, and it's an add-on on Lite.

A letter of attestation. Packetlabs notes that not every test includes one, so ask before you start. Ask for a clean-retest letter too.

Fast notice. The template uses 4 hours for a confirmed Critical and 24 hours for a High. You don't want to read about a live hole in the final PDF.

The environment on the letter. If you test staging, make sure it runs the same build as production and say so.

Your cloud's rules. AWS lets customers test listed services such as EC2, RDS, CloudFront, Lambda and API Gateway without prior approval, but bans denial-of-service testing, including request flooding on login and API. Pass that on to the tester, and keep the providers you don't own out of scope.

What the buyer actually reads

Almost nobody at the buyer reads your whole report, and you usually shouldn't send it. A letter of attestation is a short signed document on the firm's letterhead: who was tested, by whom, the dates, scope and method, a high-level result, and whether issues were addressed. It exists because the full report holds exploit paths, payloads and addresses that shouldn't travel around a procurement team. It is not a compliance attestation or a SOC 2 report; that has to come from a qualified assessor.

Buyers vary and nobody publishes a checklist, but from the standards and templates above, we'd expect a reviewer to check these in about this order:

text
They look at    What they want                            What worries them
--------------  ----------------------------------------  ----------------------------------------
Date            Within the last 12 months                 A letter 18 months old, or one that
                                                          predates a rebuild
Who tested      An outside firm with a name               A related party, or a firm with no
                                                          footprint
Scope           The product they are buying, logged in    "marketing site" or a different product
Method          Manual, named method such as OWASP        "Automated assessment" alone
Open findings   No open Critical or High, or dated plans  Open Highs with no date
Retest          A retest date, each finding's status      Findings listed, nothing since
Totals          A believable count                        Zero findings after two days

That last row deserves a note. A report with no findings isn't automatically good news when the median at one firm is 8 (one firm's book of work, not an industry benchmark). A reviewer who sees zero may wonder how hard anyone looked, and a report with six findings, all closed and retested, tells a better story about how your company behaves.

If a buyer does insist on the full report, send it under NDA, after the retest, with the finding status filled in. PCI's outline gives the usual sections: executive summary, scope, methodology, a testing narrative, findings with severity and affected targets, and the clean-up left to do.

Fix and present the findings

Time is the catch. Median time to fix at that same firm was 10.5 days for Criticals (only 18 were tracked), 38 days for Highs and 26 days overall, but the slowest tenth of Highs took 125 days or more. So a 90-day retest window is comfortable for most of your list and tight for the worst of it. Assign an owner and a date to each finding the day the report arrives, and work through the Highs first, since those are the ones that overrun.

Keep a one-page status sheet. This is the document you'll send most often:

text
Penetration test, [Firm], 6-17 April 2026, web app and API, grey box

ID     Severity  Title (generic)            Status     Fixed     Retested
-----  --------  -------------------------  ---------  --------  --------
F-01   High      Cross-tenant record read   Resolved   21 Apr    5 May
F-02   High      Reset token reuse          Resolved   24 Apr    5 May
F-03   Medium    Export missing role check  Resolved   28 Apr    5 May
F-04   Medium    Session lifetime too long  Accepted   -         -
                 Owner: [name]. Reason: SSO customers, 8 h limit
                 ships in June. Review: 30 June 2026.
F-05   Low       Verbose error on upload    Resolved   30 Apr    5 May

Three habits make this sheet work. Use generic titles, with no URLs or parameters. Mark anything you won't fix as accepted, with an owner, a reason and a review date, because a dated decision reads as management and a missing row reads as hiding. And never change a severity yourself: if you believe a High should be a Medium because of something the tester didn't know, ask the firm to re-rate it in writing.

A reply to the buyer can be this short:

text
Our last independent test was in April 2026: [Firm], grey box, web app
and API, with accounts in every role across two tenants. Letter attached,
plus a status sheet. Two High findings were found. Both were fixed and
retested on 5 May. One Medium is accepted with a date, shown on the sheet.
The full report is available under NDA. Next test: April 2027, or sooner
if we make a significant change.

If you have AI features, say whether they were in scope. In the same Cobalt survey, 77% of organizations regularly test their AI-powered products, only 38% of LLM vulnerabilities had been fixed, and the mean time to resolve them was 36 days. Our prompt injection tests are a cheap place to start before a tester does it.

How long it takes, if a deal is waiting

text
Step                            Time                  Basis
------------------------------  --------------------  --------------------------------------------
Scope table, two quotes, sign   1 week                Our estimate
Wait for the start date         3 days to 2+ weeks    Bugcrowd: 3 business days; others vary
Test                            1-2 weeks             Blaze, calendar time
Fix Highs                       2-5.5 weeks           Median High 38 days; faster if you drop
                                                      everything
Retest and letter               1 week                5 business days in the template
Total                           about 6 to 11 weeks

That's why a dated booking is worth having early: you can answer the questionnaire with "booked for 6 April" this week, and it's a real answer. Astra, for one, issues an engagement letter saying a manual test is under way. Then test annually and after significant changes, which is what PCI's guidance asks for and what your next questionnaire or enterprise contract is likely to assume.

If you do one thing from all this: before you compare prices, ask each firm how many tester days you get, and whether they'll test as two users in two separate tenants. Those two answers explain most of the difference between the quotes.

Going into your first test with a dated list of what you already do makes the conversation shorter, and it's what you send while the test is still booked.

Score your product against 25 security controls

Sources

Prices: Blaze Information Security, How much does penetration testing cost (updated 29 October 2026); Bugcrowd on AWS Marketplace; Astra pricing; Intruder pentest pricing; Cobalt pricing; Secure Ideas (published July 2024, modified August 2026). Rates and benchmarks: Stingrai price index 2026 (UK G-Cloud 14 rate cards, GSA CALC+); Stingrai State of Penetration Testing 2026 (55 tests, 1,206 findings, one firm's own data); Strike, What penetration testing actually costs (vendor pages read 29 July 2026; quotes SecurityMetrics and DeepStrike). Method and reporting: PCI SSC Penetration Testing Guidance v1.1 (September 2017); OWASP Web Security Testing Guide v4.2, insecure direct object references; Stingrai statement of work template 2026; Packetlabs, What is a penetration testing letter of attestation (12 May 2026); AWS penetration testing policy; Cobalt press release, 25 June 2026 (survey of 455 professionals). All pages read on 4 November 2026. Most price sources sell testing, and this article is general information rather than security or legal advice.