Node.js Penetration Testing for Express and NestJS Services
Most Node.js services are the authorisation boundary for a React or Angular front end, so we test them as the boundary: every route, every role, every object. Prototype pollution, token verification and dependency risk included as standard. CREST-certified testers, fixed price from £2,850.
- Unlimited retesting
- No rescheduling or cancellation fees
- Fixed quote within 24 hours
“I would highly recommend EJN Labs to any organisation seeking reliable, detailed, and well-managed penetration testing services, particularly for government or enterprise-level projects.”
“There wasn’t another company we could find that could deliver what we needed in the timeframe we needed. The client loved it, and we got instant ROI from the engagement.”
Node applications tend to accept JSON and hand it straight to a helper that merges, assigns or clones. That is convenient, and it is also how prototype pollution starts: a property with a special name that changes the default behaviour of objects the developer never touched. Depending on what sits downstream, that ends in an authorisation bypass, a template injection or command execution.
JavaScript on the server fails differently
The second pattern is verification that is not verification. Tokens decoded rather than verified, secrets that are a dictionary word, algorithms accepted from the token itself, missing audience and issuer checks. Each of these turns a signed session into a suggestion.
The third is the supply chain. A typical service has hundreds of transitive dependencies, an internal scope that can be hijacked from the public registry, and install scripts that run with whatever the pipeline has. We look at what is reachable from your code rather than reciting a scanner list.
ISO 27001, SOC 2, PCI DSS and Cyber Essentials Plus audits accept manual penetration test evidence. Scan-only evidence is generally insufficient.
NODE SPECIFICS
What We Actually Test in a Node.js Service
Ten test areas that apply because the service is Node.js, on top of the standard API checks. Every finding is verified, reproducible and mapped to OWASP, CWE and CVSS 3.1.
Prototype pollution
Request bodies merged into objects, vulnerable helper functions, and whether a polluted property reaches a sink that matters.
Token verification
Algorithm handling, key identifier validation, decode used in place of verify, secret strength, audience and issuer checks, and revocation.
Authorisation across routes
Every route against every role, including routes only referenced in the front end bundle, and object level checks on identifiers.
Injection into the data layer
NoSQL operator injection, ORM filter handling, and raw SQL built from query parameters.
Mass assignment
Fields accepted by create and update endpoints that were never meant to be client controlled, such as role, tenant or price.
Server side request forgery
User supplied URLs in outbound calls, webhook features, redirect following, and what internal services or cloud metadata become reachable.
Command and template injection
Child process calls, evaluation of user data, and template engines that render request content.
Path traversal and file handling
Static middleware configuration, archive extraction, and download endpoints that accept a path.
Availability and limits
Unbounded request bodies, expensive regular expressions, and long-running handlers that block the event loop.
Dependencies and process configuration
Internal scopes exposed to substitution, install scripts, lockfile drift, debug ports left listening, and what error output discloses.
METHODOLOGY
What a Node.js finding looks like
Written the way a finding appears in our reports. The example below is reconstructed from publicly documented research, with hosts, paths and identifiers redacted. We do not republish client findings, named or anonymised.
Prototype pollution in a dependency turns a profile update into privilege escalation
- Affected
- A profile update endpoint at [redacted] that merged the request body into a settings object using a vulnerable utility library version.
- What we found
- The endpoint deep merged untrusted JSON into an options object. A body containing a __proto__ key added an isAdmin property to Object.prototype, and the next authorisation check read that property off the prototype chain and allowed the request.
- Why it matters
- Any registered user could become an administrator for the lifetime of the worker process, affecting every other request that process served, not only their own session.
- Fix
- Upgrade the library, merge into objects created with a null prototype, validate the body against a schema that rejects __proto__ and constructor keys, and start Node with prototype modification disabled.
Reconstructed from public research: CVE-2019-10744, prototype pollution in the lodash defaultsDeep function, CVSS 3.1 base score 9.1.
Node.js Penetration Testing: From Scope to Attestation
CREST-aligned methodology built on OWASP Web Security Testing Guide, OWASP ASVS, NIST SP 800-115, and PTES. Each finding maps to all four standards plus your specific compliance regime.
Reconnaissance
Application mapping, technology fingerprinting, content discovery, parameter enumeration, authentication-flow analysis, role-matrix construction.
Vulnerability Assessment
Authenticated and unauthenticated automated scanning across every user role, plus targeted manual checks for known weakness patterns.
Manual Exploitation
Hands-on testing by a CREST-certified pentester. Business-logic exploitation, chained vulnerabilities, privilege escalation, impact validation.
Reporting + Retest
Executive summary, technical report with CVSS scores and reproduction steps, walkthrough call, free retest after remediation, attestation letter.
CREDENTIALS
Verified Accreditations Auditors Accept
Every credential below is independently verifiable. UK procurement teams, FCA supervisors, ISO 27001 / SOC 2 auditors, and cyber insurance underwriters all recognise these standards.
GET YOUR QUOTE
Get a CREST Node.js service pen test quote in 24 hours
A fixed-price quote back in one business day, from a named CREST assessor. No sales pipeline, no chasing.
- CREST and IASME accredited. Testing your auditors and clients already recognise.
- Fast-track testing within 24 hours where required. Free retest of every fix included.
- Live findings via your client portal, not a four-week PDF.
- Fixed price from £2,850 for a small, single-scope engagement, agreed up front. Most engagements run £4,320 and up. No day-rate surprises.
Under NDA Further named references available on a scoping call.
- We reply within one business day with a fixed-price quote from a named CREST assessor.
- You approve the scope and we book a start date, usually within 24 hours.
- Live findings land in your client portal as we test, with a free retest of every fix.
Get your fixed pen test quote in 24 hours
Quote request received
We will reply within one business day with your fixed-price quote from a named CREST assessor.
Your data stays with us. No newsletter signup.
or book a 20-min scoping call first
We reply within one business day. Your data stays with us. No newsletter signup.
COMPLIANCE READY
Reports Mapped to Every Framework
Findings are explicitly tagged to the relevant control reference. Your audit team submits the report directly without translation work.
ISO 27001:2022
Annex A.8.8 management of technical vulnerabilities plus A.5.15-5.18 and A.8.2-8.5 access control validation.
SOC 2 Type I & II
CC6 logical access, CC7 system operations, CC8 change management evidence.
PCI DSS
Requirement 11.4 application penetration testing across cardholder data environments, including ecommerce penetration testing for online retail platforms.
FCA SYSC
SYSC 4.1.1R, 6.1.1R, 13 mapped to each finding for FCA-regulated firms.
UK GDPR
Article 32 effectiveness testing, customer-data security controls, ICO-acceptable evidence.
Cyber Essentials Plus
Direct certification through our IASME body status, single-vendor delivery.
PRICING
Transparent Node.js Penetration Testing Pricing
Pricing depends on app complexity, user-role count, business-logic depth, and integration surface. The day count flexes; the included deliverables stay the same across all engagements.
2 to 3 days
Single user role, basic CRUD application, marketing website with auth. Typically 5-day engagement.
Get a fixed quote3 to 5 days
Multi-role SaaS, business application with payment integration. Typically 8-12 day engagement.
Get a fixed quote5 to 8 days
Multi-tenant platform, complex authorisation matrix, integration-heavy applications. 15-20 day engagement.
Get a fixed quotePart of Technologies We Pen Test. These are examples of the stacks we publish pages for, not a complete list. If yours is not here we still test it. Related pages:
BY SECTOR
Node.js Penetration Testing for Your Sector
Sector-specialist scoping for UK businesses with sector-specific compliance regimes and threat models.
Fintech & FCA-Regulated
FCA SYSC, Open Banking FAPI 1.0, PSD2 SCA, payment-flow scrutiny, KYC/AML testing.
Fintech sector pageSaaS Companies
SOC 2 Type I & II evidence, multi-tenant boundaries, role escalation, customer-tenant isolation.
SaaS sector pageLaw Firms
SRA Cyber Standard, privileged data, conveyancing fraud defence, partner-tier procurement.
Law firm sector pageHealthcare
NHS DTAC, DSP Toolkit v6, UK GDPR Article 32, EHR systems, telehealth platforms.
Healthcare sector pageInsurance
FCA / PRA Operational Resilience, cyber underwriting, claims data, broker portals.
Insurance sector pagePublic Sector
CCS / G-Cloud framework, NCSC-aligned, citizen-facing services, PSN-compliance scrutiny.
Public sector pageWHY EJN LABS
What You Get From Node.js Penetration Testing
Six concrete differentiators competitors don’t all match.
CREST-Certified Testers, Verifiable
Every test by a CREST-certified pen tester (CRT, CCT APP, CCT INF where applicable). Verify our company status at crest-approved.org.
24-Hour Startup, Where Required
From signed scope to active testing in a single business day for incident response, audit deadlines, or regulator-driven timelines.
Live Findings, Not 4-Week PDFs
Critical issues reported during testing through your client portal. Your team remediates while testing continues.
Audit-Ready Reports
Executive summary plus full technical report with CVSS scores and explicit framework mappings (ISO 27001, SOC 2, PCI DSS, FCA SYSC).
Free Retests, Standard
Verify remediation of every finding before close-out. Letter of attestation for audit submission included. Most competitors charge £1,500-£3,000 per retest.
UK-Based CREST Testers
Every engagement performed by vetted, UK-based CREST-certified testers, matched to your needs, security clearance, and compliance scope.
FAQ
Frequently Asked
Is this an API test or an application test?
Either. Most Node engagements are scoped as an API test with the front end included for context, which is the cheaper way round.
Do you test serverless functions?
Yes. Lambda and similar handlers get the same checks plus the permissions attached to the execution role, which is usually where the real finding is.
Can you test GraphQL on Node?
Yes, and there is a dedicated GraphQL page because introspection, batching and field level authorisation need their own treatment.
Will you run a dependency scan?
We check what is reachable and exploitable rather than handing you a list of advisories. If you want the full inventory, a secure code review is the better fit.
Our service is internal only. Is it worth testing?
Internal services are where authorisation is most often assumed. We usually test them from the position of a compromised neighbouring service.
TypeScript instead of JavaScript?
No difference to the test. Types are gone by the time the request arrives.
What is included in the price?
Scoping, testing, the executive summary, the technical report, a walkthrough call and free retests until the finding is closed. One scope, one number, no follow-up invoices.
How fast can you start?
Scope to active testing in 24 hours once the scope is agreed, subject to tester availability in your window.
Are your testers CREST certified?
Yes. EJN Labs is a CREST member company and testing is delivered by CREST-qualified testers. The membership is verifiable on the CREST marketplace.
20+ CREST-accredited testing services in one place
Web, mobile, API, cloud, AI, infrastructure, red team. Pick the test that fits your environment.
Get your Node.js service tested properly
Send us the routes and the roles. You will have a fixed scope and a number within 24 hours.



