TECHNOLOGIES: APPSMITH

Appsmith Penetration Testing

Every Appsmith query executes with its datasource’s stored credentials, not the credentials of the person running it. We test what each role, datasource, public link and self-hosted setting can actually reach. CREST-certified testers, fixed price from £2,270 for a 2-day single-app scope, quoted within 24 hours.

  • Unlimited retesting
  • Unlimited pre-retesting
  • No hidden fees
Accredited & recognised
Cyber Essentials certified Cyber Essentials Plus certified IASME certifying body ISO 27001 certified ISO 9001 certified Crown Commercial Service supplier UK Cyber Security Council member
CREST
Approved Provider
10
Appsmith Test Areas
FREE
Retest Until Closed
24h
Scope to Active Test
CLIENT REFERENCE
“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.”
SquareOneImran SaghirProject Lead, SquareOneRead the SquareOne case study →
CLIENT REFERENCE
“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.”
CelloriDan WilcocksonFounder, CelloriRead the Cellori case study →
See all case studies →
WHY IT MATTERS
Datasource

A datasource is Appsmith’s stored connection to a database, API or service, and every query attached to it runs with that connection’s saved credentials, not the credentials of whoever is using the app.

The datasource’s saved credentials decide what a query can reach, not the role that triggered it

Appsmith workspaces run on Granular Access Control, a permission system Appsmith gates behind its Business plan below the instance-wide Organization Administrator role. Every user gets one of a small set of default roles, Workspace Administrator, Developer or App Viewer, or a custom role built on the same model, and each grants a different set of Create, Edit, Delete, View and Execute rights over apps, pages, queries, datasources and environments. Making an app public sits on its own permission, separate from the rest: Appsmith’s own reference confirms a Workspace Developer can create, edit and delete everything inside an app but cannot make it public or export it, so that ability has to be granted, or withheld, deliberately. We map every role and custom role in scope against what its Make Public, Export and per-environment permissions actually allow, rather than assuming the workspace hierarchy matches the org chart.

A datasource is Appsmith’s stored connection to a database, API or other service, and every query attached to it runs with that connection’s saved credentials rather than the credentials of the person using the app. Appsmith’s own security documentation is explicit that the server appends those credentials to the request immediately before it reaches the backend, so they are never sent to the browser, and that an existing secret cannot be viewed again once saved, only replaced. SQL queries take {{ }} values from widgets and other queries, and Appsmith enables prepared statements for every SQL query by default specifically to stop that widget input being used to inject SQL. The setting has to be turned off wherever a query needs a dynamic table name or a dynamic query structure built from a widget’s value, since a prepared statement cannot represent either. We test which queries carry that exception, whether the resulting input is validated some other way, and what the underlying datasource credential can actually do once a query built from user input reaches it.

Logic written into a JS Object runs in the browser, and Appsmith’s own security guidance is direct about what that means: users can open browser developer tools and read it, so a permission check or a hidden feature flag written only in client-side JavaScript is not a control, it is a suggestion. The same guidance warns against holding sensitive values in Appsmith’s storeValue() function, since that data sits in the browser’s local storage and can be inspected the same way. Self-hosted instances add their own configuration layer on top of this: the APPSMITH_ENCRYPTION_PASSWORD and APPSMITH_ENCRYPTION_SALT environment variables protect every stored datasource credential, and APPSMITH_SIGNUP_DISABLED or APPSMITH_SIGNUP_ALLOWED_DOMAINS decide whether an uninvited account can join the instance at all. On Appsmith Cloud those settings are managed for you; self-hosted, they are configuration your own team has to set correctly. We test the client’s JavaScript logic and storage use, and, where self-hosted, the environment configuration actually deployed, rather than treating either platform’s defaults as sufficient on their own.

SCOPE

What we pen test on an Appsmith application

AS-01

Default Roles and the Workspace Permission Hierarchy

Every user in an Appsmith workspace holds a default role, Workspace Administrator, Developer or App Viewer, or an instance-wide Organization Administrator role, and each carries its own Create, Edit, Delete, View and Execute rights over apps, pages, queries, datasources and environments. We map every account in scope against its actual role rather than the title it was given, since the permission tables for these roles differ in ways that are easy to assume rather than check.

AS-02

Custom Roles and Granular Access Control

On the Business plan, Granular Access Control lets an administrator build custom roles that grant or remove access at the level of a single page, query, datasource or environment rather than an entire workspace. We test whether a custom role built to restrict one page or datasource actually holds that line, or whether a permission inherited from a parent resource reopens the access the role was built to remove.

AS-03

The Make Public Permission and Public App Links

Making an app public is its own permission in Appsmith, separate from Create, Edit, Delete, View and Execute, and Appsmith’s own documentation confirms a Developer role does not hold it by default, only Administrator. We test which roles in your workspace actually carry that permission, and, for any app that is public, what an unauthenticated visitor with the link can reach.

AS-04

Datasource Credentials Behind Every Query

A datasource is Appsmith’s stored connection to a database, API or other service, and every query attached to it runs with that connection’s saved credentials rather than the credentials of the person using the app. We test what those credentials can actually do against the underlying system, since that ceiling, not the app’s interface, is what a compromised or chained query can reach.

AS-05

Datasource Environments Shared Across a Workspace

Datasource environments work at the workspace level, so every application inside a workspace shares the same Production and Staging configuration for a given datasource, along with whatever permissions were granted per environment. We test whether an account granted access to Staging has, through that shared configuration, picked up Production too.

AS-06

Prepared Statements and Widget-Driven Query Input

Appsmith enables prepared statements for every SQL query by default specifically to stop values pulled from widgets and other queries being used to inject SQL, but the setting has to be turned off wherever a query needs a dynamic table name or a dynamic query structure built from a widget’s selection. We test every query for that exception, whether the resulting input is validated some other way, and what it can do once it runs.

AS-07

Datasource Secrets and Who Can See or Edit Them

Once a datasource secret is saved, Appsmith will not display its current value again, even to a user with Edit access; the value can only be replaced, not read back. We test who in your workspace holds Edit or Create access to which datasources, since that access lets someone repoint or reconfigure a connection without ever needing to see the credential it holds.

AS-08

Role Checks and Query Restrictions Enforced Client-Side

Appsmith’s own guidance for restricting query access shows role checks such as appsmith.user.role used to conditionally hide a widget or gate a query from within the app itself. We test whether that same restriction is also enforced at the datasource or query permission level, since a condition written only into the app’s logic can be bypassed by anyone who can reach the underlying query directly.

AS-09

JS Objects and Client-Side Logic

Functions and variables defined in a JS Object run in the browser, and Appsmith is explicit that this means anyone can open browser developer tools and read that code, including any check or feature flag written into it. We test what a JS Object’s logic actually controls, and whether it or the app’s storeValue() calls hold data that should not sit in the browser’s local storage, since that is visible the same way.

AS-10

Self-Hosted Configuration vs Appsmith Cloud

Self-hosted, your team sets the APPSMITH_ENCRYPTION_PASSWORD and APPSMITH_ENCRYPTION_SALT values that protect every stored datasource credential, and the APPSMITH_SIGNUP_DISABLED or APPSMITH_SIGNUP_ALLOWED_DOMAINS settings that decide whether an uninvited account can join the instance at all. On Appsmith Cloud, Appsmith manages that configuration and hosting; self-hosted, we test the environment configuration actually deployed alongside the apps, roles and datasources built on top of it.

OUR PROCESS

Appsmith Application Penetration Testing: From Scope to Attestation

01

Scope and Datasource Mapping

We agree the apps, workspaces and datasources in scope, and catalogue every role, custom role, environment and public link connected to them before testing starts.

02

Role-by-Role Authenticated Testing

We test from an account in every role and custom role in scope, comparing what each one’s interface allows against what its underlying datasource and environment permissions actually permit.

03

Manual Exploitation

A CREST-certified tester manually tests datasource credential scope, query and prepared statement configuration, JS Object logic and public app exposure, chaining findings where they compound.

04

Reporting and Retest

You get a technical report with CVSS scores and reproduction steps, a walkthrough call, a free retest once fixes are deployed, and an attestation letter for auditors.

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 Appsmith 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 £3,500 for a single-role, single-app scope, agreed up front. Most engagements run £5,000 and up. No day-rate surprises.
What clients say
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.
CelloriDan WilcocksonFounder, Cellori

Under NDA Further named references available on a scoping call.

What happens next
  1. We reply within one business day with a fixed-price quote from a named CREST assessor.
  2. You approve the scope and we book a start date, usually within 24 hours.
  3. Live findings land in your client portal as we test, with a free retest of every fix.
Accredited & recognised
CREST member Cyber Essentials certified Cyber Essentials Plus certified IASME certifying body ISO 27001 certified ISO 9001 certified UK Cyber Security Council Crown Commercial Service supplier

Get your fixed pen test quote in 24 hours

⚡24h reply ✓CREST tester ↻Free retests

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 written so your team can reference the report against each framework 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 Appsmith Application Penetration Testing Pricing

Pricing depends on the number of roles, integrations and environments in scope. See our pricing page for how we quote.

✦ ALWAYS · ON EVERY TIER · NO EXCEPTIONS ✦
✓Free retests, no time limit
✓Free rescheduling
✓No cancellation fees
✓24-hour scope to active testing
✓Live findings to client portal
✓Executive + technical report
✓60-min walkthrough call
✓Letter of attestation
SMALL / SMB
£2,270–£3,340
2 to 3 testing days

Single user role, basic CRUD application, marketing website with auth. Around 5 working days from kickoff to report.

Get a fixed quote
ENTERPRISE
£5,330–£8,130
4 to 6 testing days

Multi-tenant platform, complex authorisation matrix, integration-heavy applications. Around 15 to 20 working days from kickoff to report.

Get a fixed quote

Full UK pen test cost guide

WHY EJN LABS

What You Get From Appsmith Application 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

What access do you need to test our Appsmith apps?

A test account in each role or custom role you want covered, from App Viewer up to Workspace Administrator, plus visibility of the datasources those apps query so we can see what each one is configured to reach. We do not need your production datasource credentials directly; credentials scoped to a staging or test datasource are enough where one exists.

Will this touch our live data?

No. Where a staging datasource environment or a cloned dataset exists, we test against that. Where only a production datasource is available, any check that could alter data is agreed and scoped with you in advance, and read-only checks are logged as they run.

How long does an Appsmith application penetration test take?

A single-app engagement is scoped at 2 testing days as a starting point, rising with the number of roles, datasources and environments connected to the app. Reporting and a walkthrough call follow testing, with a free retest once fixes are deployed.

Is self-hosted Appsmith tested differently from Appsmith Cloud?

Yes. Self-hosted, the environment configuration sits in scope alongside the apps, including the encryption settings that protect stored datasource credentials and the settings that control who can create an account, since your team owns that configuration rather than Appsmith. On Appsmith Cloud, testing concentrates on the apps, roles, datasources and public links you control, since Appsmith operates the underlying infrastructure.

What is out of scope?

Appsmith’s own cloud infrastructure and platform code are out of scope; that sits with Appsmith’s own security programme, not this engagement. We test the apps, roles, custom roles, datasources, JS Objects and public links you have built and configured, on Appsmith Cloud or self-hosted.

Does Appsmith have a policy for customers testing their own instance?

We confirm Appsmith’s current terms with you during scoping, particularly for any testing that could touch shared Appsmith Cloud infrastructure rather than a self-hosted deployment you control outright.

Do you test JS Objects and other client-side logic as well as queries?

Yes. JS Object functions and any visibility or role condition written into the app’s widgets execute in the browser, so we test what that logic actually enforces against what the underlying datasource and query permissions enforce independently, plus what a user could reach by bypassing the JavaScript altogether.

EXPLORE EVERY SERVICE

20+ CREST-accredited testing services in one place

Web, mobile, API, cloud, AI, infrastructure, red team. Pick the test that fits your environment.

Penetration testing services
READY TO START

Get a fixed price for your Appsmith application

Every Appsmith query executes with its datasource’s stored credentials, not the credentials of the person running it. We test what each role, datasource, public link and self-hosted setting can actually reach. CREST-certified testers, fixed price from £2,270 for a 2-day single-app scope, quoted within 24 hours.