Problems & solutions · Internal Tools

Vulnerability Remediation Problems: The 7 That Cost Real Money, and How to Avoid Them

Vulnerability Remediation Management Software product interface illustration showing common problems and fixes.
The short answer

The most expensive failure in vulnerability management is a genuinely dangerous finding that no named human ever accepted. It sits on an internet reachable host, it appears in the catalogue of weaknesses known to be exploited, and it stays open for months, not because it is hard to patch but because the routing rule matched a team queue rather than a person, and a queue does not feel embarrassed. Nothing in the process is broken in a way anyone can point at. The scanner found it, the report listed it, the ticket exists, and the exposure persists until somebody exploits it or an auditor asks who was accountable. Every other problem in this article makes that one harder to see.

Why does the deduplication scope get underestimated so often?

Because on paper it reads as matching on a common identifier, and in practice a finding is a triple of weakness, asset and location, and all three are expressed differently by every tool you own.

Take a single weakness on a single host. One scanner reports it against an internet protocol address captured at scan time. Another reports it against a hostname. A container scanner reports the same underlying library inside an image that runs on that host. That is one weakness and three tickets, and no product that only owns its own data can collapse them, because none of them can prove the three asset references are the same thing.

The weakness side is worse than teams expect. A substantial part of any real backlog has no common vulnerability identifier at all: misconfigurations, weak ciphers, end of life software, policy failures, missing hardening. Those are precisely the findings each tool words differently, and they are the ones least likely to deduplicate on their own. A build that assumes every finding has a public identifier will produce a backlog number that is confidently wrong in both directions.

Every downstream number depends on this. Merge two hosts that are not the same and you hide a real finding. Fail to merge and you inflate the backlog, which is how a security team reports a number that went up while exposure went down.

The fix is asset identity resolution first, with confidence scoring and a manual merge path for the ambiguous cases, then a canonical finding identity that includes an explicit mapping table for the weaknesses with no public identifier. That table needs maintenance. Pretending otherwise is how these projects quietly produce numbers nobody trusts.

What goes wrong with asset data and the configuration management database?

The single biggest schedule variable in this category is the state of your asset register, and almost nobody discovers that until the ownership rules are being tested.

The typical estate has a configuration management database that was accurate at implementation and has decayed since. Cloud accounts follow a naming convention that changed at some point and was never backfilled. An acquisition brought in a subnet with four hosts that belong to a team the register has never heard of. Ephemeral cloud instances appear and disappear faster than any discovery cycle. Container images inherit ownership from the repository that built them, which the register does not model at all.

The consequence is specific: ownership rules built on a stale register produce confident wrong answers, which is more damaging than no answer. A finding routed to a team that does not own the host gets closed as not ours, and it now has a history of being triaged and dismissed, which makes it harder to re-raise than if it had never been routed.

The second consequence is criticality. Risk scoring depends on knowing which assets matter, and asset criticality is usually a field somebody populated once. If it is empty or uniform, your risk model degrades to severity scoring with extra steps.

The fix is to treat the asset register as an input to be validated rather than a source of truth. Reconcile it against cloud inventory and scanner-observed assets, report the disagreement rate as a standing metric, and put a last seen date on every asset. Criticality needs a deliberate campaign with the business, not a data migration.

Why do the scanner and ticketing integrations break after launch?

Scanner connectors break on scale rather than on function. They work against a small result set in a proof of concept, then meet pagination that behaves differently past a certain depth, rate limits that tighten during a large scan window, and incremental sync that quietly misses findings closed and reopened between pulls.

Ticketing integrations break on process rather than on the interface. Two way sync with Jira or ServiceNow works until a team changes a workflow, adds a required field, or renames a status, at which point your writes start failing or, worse, silently landing in a state your platform does not recognise as closed. Then the platform reports open work that the team believes it finished, and the team stops trusting the platform, which is fatal because adoption is the whole point.

The third breakage is scale in the other direction. A first sync that creates thousands of tickets in somebody's board gets your integration switched off by an infrastructure lead within a day.

The fixes are practical. Build each connector with its own retry and backoff, and track scan run identity so a partial pull is visible as partial. Agree ticket creation thresholds with the owning teams before go live, starting with findings above your risk threshold only. And treat workflow changes as expected: validate the mapping on a schedule and raise an exception when a status no longer maps, rather than discovering it in a monthly report.

What happens when exception handling and scan coverage are not covered?

These are two different omissions with the same effect, which is a backlog that looks honest and is not.

Exceptions first. Some findings will not be fixed. The vendor no longer supports the appliance. The application breaks. The system is being decommissioned in nine months. Those are legitimate outcomes, and without a first class workflow they live in email. The same finding is then rediscovered and re-escalated every quarter by whoever is new, the owning team learns that the security platform does not remember decisions, and engagement drops. Exceptions need a documented compensating control, a named acceptor with the authority to accept the risk, an expiry date, and automatic return to the queue when the exception lapses.

Scan coverage is the quieter failure. If a scanner cannot reach a subnet, its findings for those hosts simply stop appearing, and a platform that infers closure from absence will report remediation that never happened. That produces reassuring numbers and real exposure, which is the worst combination available.

The fix is to track coverage separately from findings. Hold a last successful scan date per asset, mark a scan run as partial when it is, and flag assets that dropped out of scope rather than closing their findings. Then make the reporting honest by construction: of the findings meeting your risk threshold, this many were remediated inside the target window, this many are formally accepted with named owners and expiry dates, and this many are overdue with reasons. Regulated organisations gain twice, since payment card requirements set expectations for patching critical issues inside a defined window and insurers ask remediation timeframe questions at renewal.

Should you build custom or configure what you already own?

If you run one scanner across a few hundred assets with a single infrastructure team, you do not have an aggregation problem. Tenable or Rapid7 InsightVM with a maintained asset register and a monthly review meeting will serve you better than any build, and we would tell you so rather than quote.

If you have the multi scanner problem but a reasonably clean asset register and ownership that genuinely maps to tags, evaluate Nucleus Security, Vulcan Cyber, Brinqa or Seemplicity before building. They exist because this gap is real and a subscription beats a project when the shoe fits.

Build when your real ownership rules cannot be expressed as tags, when your risk model has to reflect compensating controls specific to your architecture, when regulatory evidence requirements shape the workflow rather than the report, or when you need to include operational technology or medical device estates where scanning itself is constrained and data arrives differently. The most reliable signal of all is that you already own an aggregation product and are still maintaining a spreadsheet next to it, because that spreadsheet is a written specification of what the product cannot express.

How do hidden costs get into the quote?

Scanner count is the obvious driver and it is usually stated. The one that is not is the condition of the asset register, the biggest schedule variable in the category, which never appears as a line item because nobody wants to own it. Budget explicitly for asset reconciliation, or the ownership engine is built on sand and the first month of output damages trust.

The second is business unit variation. Different SLAs, different risk appetites and different approval authorities across units multiply the exception and reporting logic, and a proposal priced for one policy will not stretch to four.

The third is the non-standard estate. Operational technology, medical devices and industrial systems cannot be scanned the way servers are, the data arrives from different sources at different cadence, and the remediation options are constrained by change windows measured in months.

The fourth is the risk model itself. Combining severity, exploit intelligence, asset criticality, network exposure and compensating controls is easy to describe and real work to make explainable, and explainability is not optional, because owning teams challenge priorities and auditors ask how they were derived. What keeps cost down is starting with the two scanners producing most of your findings and the three teams owning most of your estate.

What separates a build that works from one that fails here?

Ask how they will deduplicate a finding reported by two scanners using different asset identifiers. You want a real answer about identity resolution with confidence scoring, not string matching on hostnames. Then ask what happens to findings with no public vulnerability identifier, because that is where naive deduplication collapses and where a large share of your backlog lives.

Ask how the ownership rules engine behaves when no rule matches. If the answer is not a named fallback human with a visibly uncomfortable queue, they have designed a system where findings can disappear. The fallback matters more than the sophisticated rules, and reporting the unowned rate weekly is the healthiest single metric in this domain.

Ask what happens when a scan is partial or fails. A missing scan must never look like remediation, and a developer who has not thought about that has not run one of these platforms in anger.

Ask which scanner interfaces they have worked with by name and what broke. Then settle ownership in writing before kickoff, covering the repository and the infrastructure accounts. At Digital Heroes the client owns the code from the first commit. A system that holds a complete map of your exposure is a poor thing to rent from a supplier you cannot replace.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Salesforce research indicates sales reps spend only about 30% of their time actively selling, with much of the rest lost to administrative work including manual CRM data entry and updates. Source: Salesforce (2024) →
  2. Per the Standish Group CHAOS 2020 report (reviewed at this URL), across tens of thousands of software projects roughly 31% end successfully, about 50% are 'challenged', and roughly 19% fail outright; small projects succeed far more often than large ones, and Agile approaches succeed at markedly higher rates than Waterfall. Source: The Standish Group (2020) →
  3. McKinsey emphasizes that most L&D functions still fail to tie training to business outcomes, recommending organizations track 2-3 business-relevant indicators (such as time-to-proficiency, redeployment into priority roles, or frontline productivity) rather than participation metrics to demonstrate training effectiveness. Source: McKinsey & Company (2025) →
  4. SMS reminders that stated the specific cost of the appointment to the health system reduced missed appointments in Trial One, with the DNA (did-not-attend) rate falling from 11.1% (control) to 8.4% (specific-costs message) - an odds ratio of 0.74 (95% CI 0.61-0.89), i.e. roughly a 24-26% relative reduction - at no additional cost. (Trial Two replicated this at an 8.2% DNA rate.). Source: PLOS ONE (Hallsworth et al.) (2015) →
Zara E. · Senior Strategist · APAC · Sydney

Zara works as a senior strategist across APAC, sitting between what a client says they want and what the build should actually be. She pressure tests business cases, priorities and sequencing before engineering time gets committed. Read her for the thinking that happens before a project brief is written.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Why does our backlog go up every quarter even though teams are patching?

Usually because the same weakness is counted several times. One scanner reports against an address, another against a hostname, a container scanner reports the underlying library in an image, and each becomes its own finding. Estate growth then adds more of the same duplication. Until asset identity is resolved and findings are collapsed to one canonical record, the number measures your tooling rather than your exposure, and it will keep rising.

What is the hardest part of deduplicating scanner findings?

The findings with no public vulnerability identifier: misconfigurations, weak ciphers, end of life software and policy failures. Those are worded differently by every tool and will not deduplicate on their own, and they are a substantial share of any real backlog. You need an explicit mapping table that somebody maintains. A build that assumes every finding carries a common identifier produces a number that is confidently wrong in both directions.

Why do findings sit unowned for months?

Because they were routed to a team queue rather than to a person, and a queue does not feel accountable. The fix is an ownership rules engine with an inspectable resolution order and, more importantly, a fallback owner who is a named human with a visible queue. Unowned findings have to be uncomfortable for someone. Report the unowned rate weekly and it drops quickly, because visibility does most of the work.

How much does a stale asset register really matter?

It is the biggest schedule variable in this category and the least often budgeted. Ownership rules built on a decayed register produce confident wrong answers, which is worse than no answer, because a finding routed to the wrong team gets closed as not ours and acquires a history of being dismissed. Reconcile the register against cloud inventory and scanner-observed assets, and report the disagreement rate as a standing metric.

Can a scanner failure look like remediation?

Yes, and it is the quiet failure mode to test for. If a scanner cannot reach a subnet, its findings for those hosts stop appearing, and any platform that infers closure from absence will report progress that never happened. Track coverage separately from findings, hold a last successful scan date per asset, mark partial runs as partial, and flag assets that dropped out of scope rather than closing what they used to report.

How should risk acceptance be handled so exceptions stop coming back?

As a first class workflow with a named acceptor who has the authority, a documented compensating control and an expiry date that automatically returns the finding to the queue. Exceptions living in email is why the same finding is rediscovered every quarter by whoever is new, and why owning teams conclude the platform does not remember decisions. Formal exceptions are also what make a board report defensible rather than optimistic.

Why do teams stop using the remediation platform after a few months?

Two reasons, both avoidable. The first sync created thousands of tickets in somebody's board, so an infrastructure lead switched the integration off. Or a workflow changed, status writes stopped mapping, and the platform began reporting work as open that the team believes it finished. Agree ticket thresholds before go live, start with findings above your risk threshold only, and validate the status mapping on a schedule rather than in a monthly report.

When should we buy Nucleus or Vulcan instead of building?

When your asset register is reasonably clean and your real ownership genuinely maps to tags. They exist because this gap is real and they are good at it, and a subscription beats a project when the shoe fits. Build when ownership cannot be expressed as tags, when the risk model must reflect architecture specific compensating controls, or when you already own an aggregation product and are still maintaining a spreadsheet beside it.

What does an internal tool cost for a small business with 20 to 50 employees?
Plan on $5,000 to $15,000 for a focused tool that replaces one painful spreadsheet workflow, such as job scheduling, quoting, or PTO tracking. In Digital Heroes projects at this size, the sweet spot is one core workflow, two or three user roles, and a single integration, usually QuickBooks or Google Workspace. Quotes far below $5,000 usually mean a template with your logo on it rather than software built around your process.
Will a custom internal tool scale as our company grows?
Yes, provided it sits on a standard stack with a real database: PostgreSQL comfortably handles millions of records, and adding users costs hosting pennies rather than per-seat fees. The real scaling risks are organizational, not technical: new departments want features, processes change, and the tool needs a budget line to evolve. Set aside a small quarterly improvement budget instead of treating launch as the finish line, and the tool stays useful for a decade rather than getting rebuilt every two years.
Who owns the code when an agency builds my software?
You should, completely, through a written intellectual property assignment that transfers everything on final payment; without that clause, copyright stays with whoever wrote the code by default. Insist that the repository lives in your own GitHub organization from day one and that hosting, domains, and third-party accounts are registered to you. Also check for licenses to the agency's proprietary frameworks buried in the contract, because those can make switching vendors practically impossible even when you own your own code.
How do I vet a development agency for an internal tools project?
Ask to see two or three internal tools they have shipped and whether those clients still use them daily, because internal tools fail on adoption, not code quality. Good signs: they ask to see your current spreadsheet or process before quoting, they propose a phased build instead of one big launch, and they spell out who handles training and post-launch changes. Walk away from anyone who gives a fixed price before seeing your actual workflow, since internal tools live or die on process details.
What are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
What does it cost to keep an internal tool running after launch, and do we need to hire a developer?
Budget 15 to 20 percent of the build cost per year, so a $25,000 tool runs roughly $300 to $400 a month covering hosting, security patches, dependency updates, and small tweaks, figures drawn from Digital Heroes maintenance contracts. You do not need an in-house developer; a monthly retainer with the agency that built it covers the typical internal tool comfortably. Hosting itself is cheap for internal audiences, often $20 to $100 a month, because you serve dozens of users rather than the open internet.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
What are the most common mistakes companies make when building internal tools?
The three failures Digital Heroes sees most: building for every department at once instead of nailing one workflow, designing without the end users so staff quietly go back to their spreadsheets, and leaving no named owner after launch so small bugs pile up until the tool dies. A subtler fourth is faithfully recreating the old spreadsheet, including its workarounds, instead of fixing the process first. Start with one team's most painful workflow and put the actual users in the room from week one.
Does it matter which tech stack the agency wants to use?
Yes, but not in the way most buyers expect: the goal is boring, popular technology such as React, Node.js or Python, and PostgreSQL, because any future team can maintain it and hiring a replacement developer takes days, not months. The red flag is an agency-proprietary framework or an unusual language, which welds you to that one vendor no matter what your contract says about code ownership. A useful test: could you find three freelancers fluent in this stack within a week? If not, push back.
How many developers does it take to build an internal tool?
Two to four people covers nearly every internal tool: one or two developers, a part-time designer, and a project manager who doubles as your single point of contact. Internal tools rarely need consumer-product polish, so a full-time dedicated designer is usually wasted budget. On Digital Heroes projects, a two-person core team handles the typical 4 to 8 week build, with a specialist pulled in briefly for a tricky integration or a security review.
How do I calculate the ROI of a custom internal tool?
Count hours first: multiply the weekly hours staff spend on the manual process by their loaded hourly cost, then add the cost of errors such as mispriced quotes or missed renewals. A tool saving a 10-person team 5 hours each per week recovers about 2,500 hours a year, which repays a $20,000 to $30,000 build well inside a year at typical wages. Most internal tools Digital Heroes delivers reach payback in 6 to 18 months, with quoting and billing tools at the fast end because they plug revenue leaks, not just time.
Who can build a custom internal tools system?

Digital Heroes builds custom internal tools systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other internal tools companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?