Security

Research

ServiceNow quietly addresses unauthenticated data exposure flaw from 2015

Researcher who publicized issue brands company’s communication 'appalling'


ServiceNow is issuing a fix for a flaw that exposes data after a researcher published a method for unauthenticated attackers to steal an organization's sensitive files.

Security researcher Aaron Costello highlighted apparent issues with the default configurations of ServiceNow's widgets, allowing for personal data to be exposed.

ServiceNow's widgets act as powerful APIs for the platform's Service Portal. Despite a code change earlier this year to improve safety, the default configuration of these widgets was to set their records public, meaning that if they're left unchanged, they will return the type of data an attacker specifies.

Before quietly issuing a fix on October 20, ServiceNow told The Register that it was aware of the research describing "a potential misconfiguration issue." However, it didn't say it would make any changes, adding that it works regularly with customers to ensure security configurations are properly implemented for each unique organization.

"We proactively work with customers on the ongoing safety of their security configurations, including Access Control Lists (ACLs), to ensure they are properly structured and aligned to their intended purpose," a spokesperson said.

"We make these protocols extensible so our customers can configure them based on their unique security needs – from companies with public portals providing broad access to information to enterprise-specific use cases where access is restricted to select users."

How data is exposed

The issue revolves around ServiceNow's widgets that are used extensively throughout the platform.

As many Reg readers know, Widgets are like APIs that can take input parameters from a user – a table name and field name. A table is like a type of data being stored, such as user data, and field name refers to a field within that table, like first names. By passing specific table and field names into a call to a widget, an unauthenticated user could retrieve the data they want.

Access Control Lists (ACLs) govern the access for resources within ServiceNow, like tables, but not widgets themselves. These have a three-part check for roles, conditions, and scripts. If an ACL doesn't exist for a given resource, the default implementation is to deny access, but if a resource has an ACL with each of the three checks left "empty," access attempts resolve to true.

In his research, Costello suggested that many of the ACLs in use in ServiceNow are blank – the three checks are left empty and therefore access is granted to potential attackers.

The widget Costello used in his research as an example is Simple List, the function of which is to return record data when table and field names are supplied.

His findings revealed that an attacker who wanted to capitalize on these misconfigurations could do so by crafting a script that targeted a ServiceNow instance and iterated over a series of known table and field names, continuously calling a widget to see if any data was returned.

Personally identifiable information (PII) such as full names and email addresses are among the data that had been retrieved by researchers using this method. Internal documents and incident details were also retrieved by others.

Costello hasn't detected any attempts to exploit these misconfigurations in data theft attempts. However, he emphasized that he only started tracking them in 2021, and the misconfigurations have been in play since 2015, when the Simple List widget was added to the platform, meaning it would be very difficult to check for historical attempts.

"It is my knowledge, not a guess, that near-identical vectors exist across other popular SaaS applications, not only ServiceNow and Salesforce," Costello said in his writeup.

On March 3, 2023, ServiceNow made the first tweak to its resources that checked whether the public role was explicitly applied in the ACL. If it wasn't, access would be denied. Costello suggested this didn't go far enough as there were other ways to make a resource public.

"We know that one must satisfy the role, condition, and scripted parts of an ACL," Costello said. "If 'public' is not defined as a role on the ACL, an unauthenticated user might still pass the condition or scripted parts and thus be granted access.

"Even more likely is the ACL is entirely empty of a defined role, condition, or script; allowing an unauthenticated user access to the resource."

The researcher was keen to highlight that ServiceNow did not have any public documentation on the affected component.

He also suggested that by issuing an initial fix in March, ServiceNow demonstrated that it knew about the issue, but did little to contact customers alerting them to potential data exposure.

"The fact that this widget disaster is known by the vendor, as proven this year by their modifications, yet has existed since 2015 without any publicly facing documentation, is appalling," he said.

There does exist a recently published, public-facing ServiceNow support page announcing the company was investigating the issue, but the customer communication that followed was limited to customer-only Knowledge Base (KB) articles.

After the research started attracting attention last week, ServiceNow quietly released a second fix for the issue that set all blank ACLs to disallow public access by default.

It announced in a non-public KB article, seen by The Register, that an update had been applied to all blank ACLs to add a script ensuring access was only granted if a user was logged in. 

While the company believes this should go a long way in mitigating any unauthorized access attempts, it recommended defining the role, condition, and script checks on all ACLs used in ServiceNow.

It also warned that the update may have affected customers' instances that intentionally allowed unauthorized users to access certain resources. In these cases, customers should remove the script that was added to each ACL by the update and either manually enable the public role or create a new ACL for the table and field and set its role to "public."

For any table that requires public access, customers have been urged to consider reducing the number of rows the ACL grants public access to, which can be done by adding a script, as well as only applying the public role to the specific fields that require it.

Widgets should also be reviewed for "public" flags that aren't necessary, and if external access isn't required at all, IP access control should be applied to the ServiceNow instance to allow only trusted IP addresses. ®

Send us news
3 Comments

HPE to start pumping AI capabilities into Greenlake under Project Ethan

OpsRamp now natively available through IT-as-a-service platform

Admin of $19M marketplace that sold social security numbers gets 8 years in jail

24 million Americans thought to have had their personal data stolen and sold for pennies

UK's cookie crumble: Data watchdog serves up tougher recipe for consent banners

30 days to get compliant with tracking rules or face enforcement action

Watchdog bites back against blockage of $9M fine on US selfie-scraper Clearview AI

Britain's ICO claims tribunal misinterpreted law, wants case revisited

Home of the world's longest pleasure pier joins public sector leak club

Southend-on-Sea Council unwittingly exposed sensitive records of more than 2,000 staff for five months

Atlassian predicts its on-prem products will grow faster than cloud

That is not the plan – nor was a larger loss – so investors whacked the Aussie’s share price

Apple jacks prices to juice profits because $19.3B a quarter isn't enough

Shareholders rejoice! Apple TV+, News+ raises prices over 40%

AWS says it wants in on the European sovereign cloud game

Appealing to growing crowd that wants data outside US jurisdiction

Element users are asking for protection against government encryption busting

NATO, United Nations, US DoD, and French government among its customer base

Irish cops data debacle exposes half a million motorist records

Details of civilians and Garda officers were included, as well as high-res scans of identity documents

As it prepares to abandon its on-prem server products, Atlassian is content. Users? Not so much

Massive price rises are coming for smaller holdouts, and Australian vendor knows its bottom line could hurt

What to expect when the UK-US Data Bridge comes into force this week

Britain's privacy watchdog still not happy that agreement 'appropriately' protects sensitive data