Finding · VUL-0417
Account takeover via stored XSS
LESIS is a partner, not a product. We are a security engineering team that works closely with each client and shapes the scope, the method and the tools around the system in question. No two engagements are alike.
Who we have helped protect
The future of the internet is still unwritten. We are here to make sure the next chapter is written securely.
Our approach is grounded in a thorough attacker's perspective and in research-driven thinking. We understand what each organization needs and adapt to requirements that differ from one to the next, so that the investment in security becomes a differentiator for the business, and the investments already made are preserved. LESIS works with fintechs, retail, healthcare, telecommunications and lawtechs.
As an independent institution, with no ties to other companies or investors, we are neutral when we evaluate products and technology, and our work is judged on its quality alone. Our consultants bring more than ten years of experience and have reported vulnerabilities to D-Link (CVE-2020-9376 and CVE-2020-9377), Apple, Activision, Oracle and MISP (CVE-2020-28043).
One shared ontology
A finding, a system, a person, an incident, a runbook: each one is a defined kind of record, and every link between them means one specific thing. That precision is what our engineers and our agents both work against, and it is where speed, coverage and technical depth come from.
Security is not linear. Neither is our execution.
In the traditional model, a single analyst conducts the whole assessment. LESIS runs each project as a collaborative effort, with several specialists working on the same system at the same time, each bringing a different background to it.
More components examined, and more than one way of examining each of them.
No single assumption about the system goes unchallenged.
Each vulnerability is confirmed by more than one engineer before it is recorded.
Time to follow a chain of weaknesses to what it actually exposes.
Every finding, every system registered, every incident and every fix changes what the rest of the record can say. A vulnerability closed last year explains a pattern in this one; an incident names the systems worth looking at first; a fix that failed its retest tells you more about a team than any questionnaire would. Nothing here is filed and forgotten: each addition is read against everything already there, and the posture improves because of what comes back.
What it must protect
Threat model Engineers
Severity means nothing on its own. A finding is severe in proportion to the objective it puts at risk, so the first thing we settle with your team is what the product must protect, from whom, and where its attack surface lies. That answer is kept as a record rather than a document: change it, and the priority of everything already recorded changes with it.
Eight states, one deadline each
Findings Platform
Each finding carries its evidence, a CVSS 4.0 severity, and a deadline that the severity sets rather than the calendar. It moves through eight states, and every change stays in the history with the name of whoever made it. Nothing closes on someone's word: a fix is closed after we have retested it.
Every component, one method each
Method Engineers
Architecture review, infrastructure testing, application security, code review and reverse engineering are the methods; what decides the outcome is what they are pointed at. A weak default in the infrastructure is worth little until it is chained to a parser that trusts it and an endpoint that reaches both. Our engineers follow those chains to what they actually expose, because a list of isolated weaknesses is not a description of risk.
Enrichment log
Connections Agents
The agents work only on what is already recorded. They link a finding to the systems it affects, the people involved, the incident it bears on and the runbook that answers it, and they notice when something in one project resembles something in another. They never create a finding. That is the engineers' work, and the line between the two is deliberate.
Nothing available could reach its message format
Tooling Engineers
Some components cannot be examined with anything that already exists: a proprietary message format, a pinned mobile transport, a parser nobody has documented. We build for those, and what gets built is a fuzzer, a static analyzer, instrumentation or a harness rather than a deliverable. The tool stays with the engagement, so the same component can be examined again without starting the work over.
Measurement Platform
Analytics read twelve months of the record: findings created against findings resolved, resolution time by severity, and the share of fixes that held the first time, which is the number separating a team that closes tickets from one that fixes things. The benchmark sets each measure beside comparable organizations in plain days, not against targets you set yourself, because a program scored on its own promises rewards whoever promised least.
Reconstructed to the way in
Investigation Engineers
When something has already happened we do not take the response over. We join it for one part, the way in: taking the evidence back to the weakness that made the intrusion possible and reproducing the path, so the conclusion still holds when someone questions it. What comes out is an entry point carrying evidence and a deadline, not a narrative.
What one finding turned out to touch
The record Platform
Nothing is consumed by the work that produced it. The findings, the systems, the repositories, the people, the runbooks and the links between them stay, so an incident opened a year from now arrives with its history already attached. No engagement begins on an empty page, and each one leaves the next one further ahead.
There are two ways to work with LESIS: a scoped project with a beginning and an end, or a managed program in which we run the operation and your team collects the result.
A scoped engagement with a defined product, method and timeline, delivered on the platform, where its findings stay alive until they are fixed.
We assess a product against its threat model, component by component; each finding arrives with evidence, severity, deadline and retest.
Each assessment begins with a detailed analysis of the attack surface of the product under test, against its security objectives and threat model: what it must protect, and where it is exposed. We then verify the resilience of every component: architecture review, infrastructure testing, application security, code review and reverse engineering. Every finding arrives on the platform with evidence, a CVSS 4.0 severity, a deadline set by that severity, and a retest once fixed.
We advise on the decisions that are cheapest to change early, mapping trust boundaries and data flows into guidance your engineers can build against.
We work alongside your engineers on the decisions that are cheapest to change early: how a system is structured, where its trust boundaries fall, and which controls each boundary requires. The same rigor applies to a proposal as to a finished product, and the engagement extends to the questions that follow: reviewing a design as it evolves, advising on a control before it is built, or sitting with a team through a migration. What comes out is a set of decisions your engineers can build against, delivered through the platform, where a later assessment of the same system can verify the design held.
When no available tool fits, we build fuzzers, analyzers and instrumentation for the engagement, and what they uncover arrives as findings.
Hard problems often require tools that do not yet exist, and when no available tool can examine a component properly we design and build what is needed: fuzzers, custom static analyzers, instrumentation, data mining and on-demand research capabilities. From high-level design to low-level implementation, the process is driven by the specific demands of each engagement, and what those tools uncover arrives on the platform as findings, with the same evidence and lifecycle as any other.
We do not run the response; we join the team that does, for one part of it: establishing how the intrusion began, and proving it rather than asserting it.
Most of what an incident demands belongs to the team already handling it: containment, eradication, communication. We do not take that over. We join for the way in. We take the evidence back to the specific weakness that made the intrusion possible and then demonstrate that weakness, reproducing the path instead of naming a probable cause, so the conclusion still holds when someone questions it. What comes out is not a narrative but a finding: an entry point with evidence, a severity, a deadline and a retest, linked on the platform to the affected systems and to the timeline of the investigation it came from. This is worth commissioning for a narrow set of incidents. When the way in is already understood, or when nothing technical was exploited at all, there is nothing for us to prove, and we say so before the work starts rather than after.
We assess what a transaction brings with it, a company, a codebase or a product you are about to adopt, on the timeline the transaction allows.
A decision to acquire, invest in or adopt something is made against a deadline, and usually with less access than an ordinary engagement. We work within both. Before a deal closes we establish the security posture of what is being bought to the depth the available access permits, and separate what is merely untidy from what becomes expensive later. Once it closes, the same engineers examine the acquired systems with the access ownership now allows, and state what has to be resolved before the environments are joined. The same work applies when you are evaluating a product rather than a company: we assess it on your behalf, with no relationship to its vendor. In each case the result is a record on the platform, where every finding carries evidence, severity and a deadline and stays open until it is fixed, so the assessment keeps working for whoever owns the system afterwards.
A standing operation rather than an engagement: LESIS runs the security program on the platform, and what reaches your team is the outcome rather than the queue.
Everything the platform supports is ours to administer: findings and their deadlines, the channel outsiders report through, vendor assessments, the inventory and the runbooks, the training, the reporting set against comparable organizations. What you collect is the result of it, a posture that improves because it is attended to every week rather than every quarter. What we ask of your teams is not headcount but connection: that they act at the moment acting matters, and that what they learn goes into the record as they work. With both in place the mechanism keeps turning on its own.
Start a conversationConsultancies can deliver our assessments and research under their own brand, or refer clients to us, through the LESIS Partnership Program, without building an internal team.
Most of what the team publishes began as a problem inside an engagement, written up in full once it could be shared.
Encrypting a customer list before sending it is not the same as revealing only what the other side needs.
When each application masks the same field differently, the fragments can be recombined into the original value.
A coupon that applied to gift cards, and gift cards that could buy more gift cards: credit out of nothing.
An experienced team in static analysis, fuzzing, data mining and custom instrumentation. The approach remains grounded in rigorous, research-driven thinking.
Founder, Managing Partner
Associate Security Analyst
Security Researcher
Threat Detection Intern
Tell us what you need to find out: about a system you run, a company you are about to buy, a design nobody has built yet, or something that already happened. We come back with the scope, the method and the timeline.