Code Monger, cyclist, sim racer and driving enthusiast.
9839 stories
·
6 followers

Stop Putting Your Passwords Into Random Websites (Yes, Seriously, You Are The Problem)

1 Comment and 2 Shares

Welcome to watchTowr vs the Internet, part 68.

That feeling you’re experiencing? Dread. You should be used to it by now.

As is fast becoming an unofficial and, apparently, frowned upon tradition - we identified incredible amounts of publicly exposed passwords, secrets, keys and more for very sensitive environments - and then spent a number of months working out if we could travel back in time to a period in which we just hadn't.

Remember, kids - a problem shared is a problem that isn't just your problem anymore. It's the Shared Responsibility model(tm).

*85% our fault :-) xo

You might remember some of our previous Internet-wide disasters - but if not, here’s a refresher:

We wouldn't blame you for being slightly hopeful after reading our previous monologues into the void and thinking: "Wow, hopefully watchTowr learned something from those experiences - like, stop going on stupid adventures."

Unfortunately, while we symapthise - you would be wrong and, in fact, we continue to prove that we have learnt nothing. Truly nothing.

So today, armed once again with the aftermath of several highly questionable decisions and our continued inability to properly assess risk, we’re dragging you on another journey with us.

While conference halls continue to insist that AI threats, and of course AI solutions, have put the world on the brink of implosion - “Jimmy” over at MSSP-123 (our favourite MSSP) continues to post their Active Directory credentials for a bank on a public website, possibly on their first day (we can’t knock the bravery).

Exposing secrets in truly impressive ways to absolutely everyone is not a new phenomenon in cyber, we’ve all seen this before (and, naturally, we have all learnt nothing!). For those that aren't yet jaded, the phenomenon we allude to includes (but is by no means limited to):

  • GitHub repositories,
  • Postman workspaces,
  • DockerHub containers

Following this chain of thought, we wondered: how will 2 (maybe 3) teenagers, between homework, outsmart this multi-billion-dollar industry next week?

TL;DR: we’ve been rifling through platforms that developers use to quickly format their input - like JSONFormatter and CodeBeautify. And yes, you are correct - it went exactly as badly as you might expect.

STOP PUBLISHING CREDENTIALS IN RANDOM ONLINE TOOLS.

For Many Of You, It's Too Late

Iterating through JSONFormatter and CodeBeautify, we captured a dataset of 80,000+ saved pieces of JSON - and then parsed this dataset (using internal apparatus) to identify secrets, credentials, keys, and other types of data with acronyms beginning with P (such as PII).

Amongst thousands of secrets, the following types were noteworthy:

  • Active Directory credentials
  • Code repository authentication keys
  • Database credentials
  • LDAP configuration information
  • Cloud environment keys
  • FTP credentials
  • CI/CD pipeline credentials
  • Full, and sensitive API requests and responses
  • Private keys
  • Card payment gateway credentials
  • RTSP credentials
  • Administrative JWT tokens
  • Helpdesk API keys
  • Meeting room API keys
  • SSH session recordings
  • PII, including the following types:
  • An entire export of every single credential from someone's AWS Secrets Manager??

If the idea of thousands of these secrets in our hands wasn’t scary enough, the affected organizations leaking these things certainly were:

  • Critical National Infrastructure
  • Government
  • Finance
  • Insurance
  • Banking
  • Technology
  • Cyber Security
  • Retail
  • Aerospace
  • Telecoms
  • Healthcare
  • Education
  • Travel

and honestly.. too many more

As always, we want to remind everyone - if we can pull this off with our combined brain cell count of 1 (one, singular), anyone can.

Luckily, Quantum Computing is coming soon to solve these problems. And a robotaxi.

Where It All Went Wrong

Yes, like you, we’re screaming at our screens - and fairly perplexed at the reality we find ourselves in.

So, before we begin crying together and pooling our tears to trade for 0dayz, let’s set the scene and explain what we’re actually up to.

Our research today focuses on two (out of the many) online code formatter tools:

These tools are extremely popular, often appearing near the top of search results for terms like “JSON beautify” and “best place to paste secrets” (probably, unproven) - and used by a wide variety of organizations, organisms, developers, and administrators in both enterprise environments and for personal projects (as we’ll soon see).

The popularity is so great that the sole developer behind these tools is fairly inspired - with a typical visit to any tool homepage triggering 500+ web requests pretty quickly to generate what we assume is some sweet, sweet affiliate marketing revenue.

Anyway, our jealousy aside, the concept of online code formatters is relatively simple: put unstructured and ugly code/strings in, get beautiful and beautified and formatted art as output.

“How could this possibly go wrong?!” I hear you, the ever-so-innocent reader asking.

If you’re just prettifying:

{"first_name": "JSON", "last_name": "Bourne"}

0 shareholder value

to

{
	"first_name": "JSON",
	"last_name": "Bourne"
}

so much shareholder value

The answer is "not much".

However, if you’re a “power user” (aka a super nerd), you’ll notice extra functionality - like the SAVE button in the top-right corner.

Click it, and you get a semi-permanent, shareable link to whatever you just formatted - making it easy to share with your colleagues, friends, a client, a newly onboarded user, or your favourite Tamagotchi.

In fairness, it is already clear how this went horribly wrong.

You see, it is fairly apparent that the word ‘SAVE’ and being given shareable link was not enough to help most users understand that, indeed yes, the content is saved and the URL is shareable - enabling anyone to recover your data when armed with the URL.

To add credibility to our suspicion, we can infer that there have been circa 350,000 saved uploads since inception on JSONFormatter.org alone - with 35,000 pages of historical links, and each page containing 10 results (we did the maths of 35,000 times 10 so you didn't have to - you are welcome).

“Well, at least the shareable links are hard to predict, right?”

Methodology (Yes, We Regret Everything)

We experimented with the save functionality on JSONformatter.org and CodeBeautify.org for a while, and discovered that they follow some pretty intuitive, common formats:

Without turning this blog into an explainer on basic OSINT that nobody has asked for, we’re going to jump to ‘how did we get valid IDs?’.

We present to you: the “Recent Links” page.

This page is a by-design feature on both JSONformatter and CodeBeautify that allows a random user (you, me, your parrot) to browse all saved content and their associated links, along with the associated title, description, and date.

This makes extraction trivial - because we can behave like a real user using legitimate functionality. For every provided link on a Recent Links page, we extracted the id value, and requested the contents from the /service/getDataFromID endpoint to transform it into the raw content we’re really after:

POST /service/getDataFromID HTTP/1.1
Host: <a href="http://jsonformatter.org" rel="nofollow">jsonformatter.org</a>

urlid={id-here}&toolstype={formatter-type}

Our crawler iterated page-by-page and recorded the title, ID, and date of each saved item. The output looked like this:

Left with thousands of entries, and GBs of data - we were left with one question only, really: what are people actually using these tools for?

We kind of already knew, and no - you don’t get any prizes for guessing, either.

As with many research projects, our carefully planned pipeline for data enrichment, automated secret scanning, false-positive tuning, and automation refinement went out the window.

Enough Jibber Jabber, watchTowr

As with previous Internet-wide escapades that we call “research”, and while we always enjoy seeing other vendors wiz past and publish research evidence of their crimes, for the avoidance of doubt, we do want to highlight that we have gone to lengths to ensure that we continue to operate within the bounds of the law.

What we weren’t prepared for, though, was the overwhelming amount of data we quickly captured.

In totality, we captured:

  • 80,000+ downloaded submissions (and that’s just where we decided to stop)
    • 5 years of historical JSONformatter content
    • 1 year of historical CodeBeautify content
  • 5GB+ of enriched, annotated JSON data
  • Thousands of secrets

Once again, when we find ourselves in these situations, it’s usually paired with an overwhelming feeling of disaster - and the daunting reality that we have no idea what we’re doing.

Like it was for us, it may surprise you to learn that grepping for ‘password’ across a dataset of this size is not ideal, and so we put our thinking caps on to do this with a little more intelligence, ultimately looking for examples that we felt were actionable:

  • Clearly attributable to a known organisation, and not a solo developer.
  • Explicitly tied to an organization via an email address, domain name, or other breadcrumb.
  • Using internal domain name references, we’ve mapped to a major organization
  • Containing high-value keywords associated with security tooling, high-risk technology, or extremely sensitive information.

So, we used zgrep.

We Promise, We Tried To Tell People

Months before we published this research, we made an effort to reach out to a significant number of high-profile organizations implicated in this research and have worked with (inter)national CERTs to help enact a wider response.

Thank you to the CERT teams who requested the datasets to review for exposure within their constituencies, including (but not limited to):

  • NCSC UK
  • NCSC NO
  • NCSA Greece
  • Canadian Centre for Cyber Security
  • CISA
  • CERT PL
  • CERT EU
  • CERT FR

Of the affected organizations that we tried to contact, only a handful (thank you) responded to us quickly. The majority didn’t bother, despite attempts at communication across multiple channels.

For obvious reasons, we’ve done our best to redact the examples - but still, provide evidence to the point that there is some credibility to our claims.

Well, Well, Well, What MITRE We Have Here

Industry: Research

Disclosed Information: Encrypted Jenkins secrets

All good examples of people making questionable decisions begin with an organization involved in cybersecurity - probably.

Our first discovery within our trove of data was a perfectly formatted piece of not-JSON, involving MITRE.

Once we’d finished pondering the prospect of never being allowed to leave this industry due to the unrelenting job security staring us in the face, we rubbed our eyes and realized we were looking at an export of a Jenkins credentials.xml .

We want to be quick to point out (mostly so our Twitter replies aren’t full of try-hard nerds explaining to us how Jenkins works) that Jenkins encrypts secrets held within credentials.xml with a unique master key.

We found ourselves wondering what exactly we’d found, and how it could have possibly ended up here, which is a reasonably consistent theme throughout all of these.

After some quick Googling, we determined we were staring at encrypted credentials for accessing “MITRE CoDev”, which is a shared system within the MITRE Partnership Network that trusted organizations, like watchTowr now, can access (We're just joking? I guess? Perhaps?).

Whilst “cool”, this immediately changed the scope and type of disclosure. We were no longer looking at corporate credentials, but rather, after a bit more digging… an over-zealous university student at an extremely well-known three-letter university who decided everyone else on the Internet also deserved access to their MITRE CoDev projects, alongside other encrypted secrets such as:

  • Credentials
  • Tokens
  • Private Keys
  • Service Account Credentials

A near miss for MITRE, perhaps.

Problematic? Yes. What we’re looking for? No. The end of the world? Not yet.

Not yet…

It Could’ve Been Worse? We Guess?

Industry: Government

Disclosed Information: PowerShell, so much PowerShell.

In typical fashion, we started grepping through our dataset in search of “radioactive” secrets, essentially anything associated with governments, militaries, or similar sensitive organizations that we’d need to disclose very quickly.

A massive blob of PowerShell flew across our screens and had us immediately interested, for a few reasons..

  1. Friend, this is a JSON formatter - not Powershell. Why?
  2. This particular PowerShell blob was attributable to a well-known government entity.

Why? Because of course?

This blob contained over 1000 lines of pure, unadulterated PowerShell, designed to configure a new host from scratch, pulling down installers, configuring registry keys, hardening configurations, and finally deploying a web app.

We quickly discovered that most of the high-risk, sensitive stuff, like credentials, were handled properly (boo!), being dynamically pulled at runtime from CyberArk, or passed in through environment variables, or intentionally left with placeholder values so they didn’t end up hardcoded in a script (to avoid the risk of said script being chucked into an online tool, probably).

Whilst this wasn’t quite the type of sensitive information we were after, the script was still extremely rich in valuable information to a motivated attacker wanting to know how a system within a government environment was setup, deployed, and hardened, including information like:

  • Internal endpoints used for fetching builds, installers, credentials, and more
  • Default administrative usernames
  • IIS configuration values and properties
  • Hardening configurations, including registry keys and configs being set
  • … and more, there are 1000+ lines of this drivel.

Game over? Perhaps not. Interesting? Absolutely, and proved that maybe there were some bits of hidden treasure for us to uncover in this data source after all…

Supply Chain? More Like Supply Secrets! (Sorry)

Industry: Datalake-as-a-Service (Technology)

Disclosed Information: Docker, Grafana, JFrog Credentials

Somewhere amidst the chaos, the next bit of data that stood out to us was several references to a well-known “Datalake-as-a-Service” vendor.

We don’t know about you, but anything on a public code formatter associated with organizations that deal in “copious amounts of your data” scares us.

We were dealing with a configuration file for cloud infrastructure that contained a bunch of domain names, email addresses, and hostnames that allowed us to trivially attribute “who owns this”, and so we continued scrolling…

We didn’t have to scroll for longer before being greeted with some very obvious and plain credentials, spanning:

  • Docker Hub credentials
  • JFrog Credentials
  • Grafana Credentials
  • RDS Database Credentials

Yikes. Something something, supply chain, inherent trust, shared responsibility.

Another Security Company, More Zero Trust

Industry: Cyber Security

Disclosed Information: Definitely not brain cells

"Surely no cybersecurity vendors would leak sensitive information?!”

Oh, naive reader, you’re so cute - but we love you.

We apologize in advance for the heavy redaction, but unfortunately, the information is materially sensitive (and probably embarrassing).

After a few hours of conversing with ChatGPT to determine whether this was bad (to be honest, within 10 minutes we just began generating raccoon memes with funny hats and ended up losing an entire day of work), we decided this was not ideal.

Yes! That’s right! This cybersecurity company (yes, it was easily identified) had actually pasted a bunch of encrypted credentials for a very sensitive configuration file (if we told you what the configuration file was for, there would be no point redacting any of this) to this random website on the Internet.

However, we’re sure it’s fine - they’re a listed cybersecurity company, they must know what they’re doing!

It contained:

  • SSL certificate private key passwords
  • Service Principal Name (SPN) keytab credentials
  • Assorted, internal passwords
  • External and internal hostnames and IP addresses
  • Paths to keys, certificates, and configuration files

The good news? They did respond to us when we emailed them!

The stupid news? They couldn’t accept the information in the email unless it went through their VDP.

We have.. zero-trust.. in this approach.. but maybe it.. scales….

Till this day, we’re not sure if they’re still waiting for us to resubmit the information in the email they responded to, to yet another third-party…..

Anyway, the slightly better news for all of us (seriously) - the “configuredValues” disclosed appeared to be specific to QA or development environments, meaning the overall impact was considerably less, and those credentials were hopefully for internally facing dev/test environments only.

Slightly not so good news? The original template looked to be from another host or environment, meaning many of the “goldenValues” are different and unique, disclosing even more secrets.

Thank god this security vendor otherwise probably maybe hopefully does build secure solutions (we guess!) maybe perhaps probably we assume! And definitely isn't running AI across your traffic. Or something.

Yikes, again.

But wait…..

We All Get KYC!

Industry: Banking

Type Of Information Disclosed: Customer PII

Things took a turn for the better (haha, just kidding, it got worse again) when we discovered multiple instances of complete KYC information, including links to recordings of recorded KYC calls (naturally), for a specific bank’s customers in a specific country.

We sat there, as we do often in cybersecurity, and put ourselves in the shoes of the inspired individual who thought:

“Yes, let me quickly clean, save and presumably share this JSON blob of highly-sensitive production PII on a third-party website”.

That’s correct, they uploaded production KYC data, including:

  • Full name
  • Email
  • Address
  • Username
  • Phone number
  • ISP
  • IP address
  • URL to recorded video interview
  • and well.. just much more.

Cosplaying as this inspired individual, we then tried to answer questions like:

  • Why?
  • For what?
  • Must you?
  • How?

Eventually, we gave up - we just kept hearing a high-pitched screaming sound in our ears.

While you can’t see it within our heavily redacted image above, we were able to attribute this to its rightful owner because, of course, the “recordedVideo” property values contained a link pointing to an MP4 hosted beneath the primary domain of a major global bank.

Our theory is that the linked videos contain something along the lines of a “My name is Jason and I’m applying for a bank account” style video recorded by the customer, alongside a video of them holding up their bank card.

Why? Nobody knows.

And then, again, it got worse…

The Fantastic Four Except “Big”er

Industry: “The Biggest” Consulting

Information Disclosed: GitHub Token

“How could it get worse?”

Well, dear reader, imagine your organization does an enormous amount of software development work across your client base. Imagine you’re the type of organization that typically works with highly sensitive organizations and takes security very, very seriously.

That was, until they decided to export a massive configuration file containing some very interesting things, such as:

  • Multiple GitHub tokens
  • Hardcoded credentials
  • URLs pointed at delivery-related files on GitHub

Whilst uploading their entire configuration file for a tool to JSONformatter (which is becoming a recurring sentence??), a GitHub token was disclosed that, based on the configuration file, we infer (guess) had permissions to read/write to files and folders on the main consultancy organization’s account.

Whilst we have no idea on the scope or impact, at this point, we felt that we might be losing our minds.

Better yet, as a final icing on the cake, they couldn’t resist throwing in an “ole’ reliable” default credential too:

In fairness, that password is 11 characters long, including numbers, uppercase, and lowercase characters - so, we’ll pass the audit.

We Exchange Sanity For Mayhem

Industry: Major Financial Exchange

Information Disclosed: Production AWS Credentials

Just when we thought the Internet had exhausted its ways to disappoint us, we found something genuinely terrifying: production AWS credentials.

Unfortunately, these weren’t just any old AWS credentials, but were instead AWS credentials directly associated with Splunk SOAR automation at a major international stock exchange, with that tell-tale AKIA prefix.

After a quick (and, yes, mildly distracted) round of sleuthing - which involved the generation of fewer (but still some) raccoon memes - we realised we’d found a Splunk SOAR playbook export. Embedded in that export were credentials to an S3 bucket containing detection logic and automation logs - essentially the brain powering parts of an incident-response pipeline.

This was not your average organization, but a truly tier-0 target in-scope of the most motivated and determined threat actors, who would absolutely capitalize on being able to leverage any ability to blind or damage security automation.

We promptly disclosed them to the affected stock exchange for remediation.

Ha Ha, The Bar Is Even Lower Than We All Thought

Industry: MSSP

Information Disclosed: Active Directory credentials for a BANK, presumably, hopefully by accident

If you’ve been awake at any point in the last six months, you’ve probably heard that outsourced help desks are the social-engineering playground - the root cause of a lot of recent ransomware incidents (allegedly, we don’t know) - but also the first people you call when you’ve locked yourself out of Outlook (and ID and any other way to prove your identity and the legitimacy of your request - because apparently this doesn’t matter).

In what we’ve affectionately termed “pure insanity,” we discovered why social engineering might not even be necessary anymore.

Somewhere, an employee at a very well-known MSSP happily uploaded their onboarding email - complete with Active Directory credentials - to a public code formatter.

And, of course, that email didn’t just include credentials for the new MSSP employee… but also a second set: credentials for the MSSP’s largest, most heavily advertised client - a U.S. bank.

Slow…. clap………………..

We’ve had to scribble over the entire screenshot because, frankly, every single line was sensitive. Trust us. (Or don’t, whatever)

This formatter entry contains three sets of credentials, from what we suspect is new starter onboarding automation, which generates a newly hired MSSP employee:

  • Active Directory credentials
  • ID-based credentials
  • Email credentials

The Active Directory credentials are for the MSSP’s environment, but the email and ID-based credentials are for the MSSP’s main, heavily publicized client - a huge US-based bank.

This pasted content contains virtually everything an attacker would need, including:

  • Usernames / ID Numbers / Email addresses
  • Passwords
  • Security questions and answers
  • Mystery “token” values (we have theories)

We can only hope this was a rare case of an employee behaving badly, possibly on their first day.. which is impressive.. and not an established process / common pattern.

The best part? None of this is valid JSON. It doesn't even work within the formatter.

This means that someone likely used this code formatting platform solely to generate a shareable link for their credentials.

The Canary in the CodeBeautify Mine

Sometimes, we lie on the street - arguably, not by choice - staring at the sky and asking if we’re alone in the world.

While this question is occasionally met with a response from the person in the tent across from us, in the case of this research, we really did want to understand if we were alone.

  • Were we the only people monitoring these platforms?
  • If so, would publishing this research expose others to risk?
  • Are our ideas as original as we would like them to be?
  • Does anyone care if we continue to publish this drivel?

To determine any of the above, we came up with a simple test:

  1. Generate a bunch of credentials we can track usage of (thank you, CanaryTokens!),
  2. Paste them into the aforementioned JSON formatting solutions - just like others at government agencies, cybersecurity companies, banks, MSSPs, airlines, and others have done, and then just..
  3. Wait.

So, we charged forward and uploaded a few secrets that looked similar to:

{
	"Credentials": {
		"AccessKeyId": "AKIAXXXXXXXXXXXXXXXX",
		"SecretAccessKey": "XXXXXXXXXXXXXXXX",
		"Region": "us-east-1"
	},
	"ConvertedFields": "aws_access_key_id,aws_secret_access_key,region"
}

To investigate this idea a little further, we decided to upload our secrets with a 24-hour expiry - a helpful feature provided by these helpful platforms.

Leveraging the expiry timer would provide us with evidence to determine some of the above - for example, if the credentials were used after the 24-hour expiry, it would indicate that someone had stored the upload from the “Recent Links” page before expiry and used it after it had technically expired.

And then, the big “surprise”… we got our first hit, indicating somebody was poking around these datasets.

More interestingly, they were tested 48 hours after our initial upload and save (for those mathematically challenged, this is 24 hours after the link had expired and the 'saved' content was removed).

We’re not alone - someone else is already scraping these sources for credentials, and actively testing them.

Sigh

For those who have already begun writing vicious tweets and emails - today’s publishing of this research has not increased the risk attached to the already existing exposure of this sensitive information in the reviewed platform.

Mostly because someone is already exploiting it, and this is all really, really stupid. We don’t need more AI-driven agentic agent platforms; we need fewer critical organizations pasting credentials into random websites.

Until next time.

The research published by watchTowr Labs is just a glimpse into what powers the watchTowr Platform – delivering automated, continuous testing against real attacker behaviour.

By combining Proactive Threat Intelligence and External Attack Surface Management into a single Preemptive Exposure Management capability, the watchTowr Platform helps organisations rapidly react to emerging threats – and gives them what matters most: time to respond.

Read the whole story
acdha
7 hours ago
reply
“What we weren’t prepared for, though, was the overwhelming amount of data we quickly captured.”
Washington, DC
LeMadChef
1 hour ago
reply
Denver, CO
Share this story
Delete

Mobile browsers see telephone numbers everywhere

2 Shares

Just like Excel seeing everything as a date, mobile browsers automatically interpret many numbers as telephone numbers. When detected, mobile browsers replace the text in the HTML with a clickable <a href="tel:..."> value that when selected will call the number denoted. This can be helpful sometimes, but frustrating other times as random numbers in your HTML suddenly become useless hyperlinks.

Below I've included numbers that may be turned into phone numbers so you can see for yourself why this may be a problem and how many cases there are. Numbers that are detected as a phone number by your browser are highlighted blue by this CSS selector:

a[href^=tel] {
  background-color: #00ccff;
}

None of the values below are denoted as telephone number links in the source HTML, they are all automatically created by the browser. Also, if you're not using a mobile browser then the below numbers won't be highlighted. Try opening this page on a mobile phone.

  • 2
  • 22
  • 222
  • 2222
  • 22222
  • 222222
  • 2222222
  • 22222222
  • 222222222
  • 2222222222
  • 22222222222
  • 111111111111
  • 222222222222
  • 555555555555
  • 1111111111111
  • 2222222222222 (???)
  • 5555555555555
  • 11111111111111
  • 22222222222222
  • 55555555555555
  • 111111111111111
  • 222222222222222
  • 555555555555555
  • 2-2
  • 2-2-2
  • 22-2-2
  • 22-22-2
  • 22-22-22
  • 22-22-222
  • 22-222-222
  • 222-222-222
  • 222-222-2222
  • 222-2222-2222
  • 2222-2222-2222
  • 2222-2222-22222
  • 2222-22222-22222
  • 22222-22222-22222
  • 2 222-222-2222
  • +1 222-222-2222
  • +2 222-222-2222 (There is no +2 country code...)
  • +28 222-222-2222 (Unassigned codes aren't used)
  • +1222-222-2222
  • +2222-222-2222
  • (+1)222-222-2222
  • (+2)222-222-2222
  • (1)222-222-2222
  • (2)222-222-2222
  • (1222-222-2222
  • (1 222-222-2222
  • 1)222-222-2222
  • 222–222–2222 (en-dashes)
  • 222—222—2222 (em-dashes)
  • [1]222-222-2222
  • <1>222-222-2222

Are there any other combinations that get detected as telephone numbers that I missed? Send me a pull request or email.

How to prevent automatic telephone number detection?

So how can you prevent browsers from parsing telephone numbers automatically? Add this HTML to your <head> section:

<meta name="format-detection" content="telephone=no">

This will disable automatic telephone detection, and then you can be explicit about clickable telephone numbers by using the tel: URL scheme like so:

<a href="tel:+222-222-222-2222">(+222)222-222-2222</a>


Thanks for keeping RSS alive! ♥

Read the whole story
LeMadChef
1 hour ago
reply
Denver, CO
acdha
5 hours ago
reply
Washington, DC
Share this story
Delete

https://bsky.app/profile...

3 Shares

Meme picture of man checking out a woman as the woman he's with looks on belowthe picture of Trump looking at Mamdani with a picture of Reagan lol king at him.

https://bsky.app/profile...
Read the whole story
LeMadChef
21 hours ago
reply
Denver, CO
jhamill
1 day ago
reply
California
Share this story
Delete

This Jeep Is Getting Recalled So Much That Owners Are Making Recall Merit Badges

1 Share

The Wrangler 4xe was Jeep’s first plug-in hybrid. Released back in 2021, it’s been a solid seller for the brand, but it hasn’t been without its issues. The 4xe has been recalled no fewer than 14 times over its five-year life, according to the National Highway Traffic Safety Administration (NHTSA).

A few of these recalls, like the malfunctioning side marker lights recall from 2022 or the non-functional reverse lights and camera from 2023, are more inconvenient than serious. But most are pretty serious, with some posing a stall or fire risk.

If I were a 4xe owner, I’d be pretty angry about having to take my Jeep into the dealer 14 times for recalls over five years. It seems some owners are taking the constant recalls in stride, though, because they’re making entire sets of merit badges for their SUVs to show off the recalls they’ve completed.

Wow, Is It That Bad?

If you’ve spent any time in the Subaru community, you’ll know the company does this thing where you can order “Badges of Ownership,” little badges with symbols of stuff you like doing with your Subaru, like camping, off-roading, or driving with your pet. They’ll even ship them to you free of charge, whether you bought your car new or used (all you need is a VIN).

Screenshot 2025 11 24 At 1.26.11 pm
There are lots of different badges to choose from with Subaru. Source: Subaru

This is sort of like that, but for Wrangler 4xe owners. Loot Designs, a company that makes all sorts of custom badges for Jeeps, has an entire section dedicated specifically to recalls of the 4xe, each with the manufacturer’s recall number and a little graphic representing the reason for the recall.

Y94 1080x
Source: Loot Designs

There are 10 different designs to choose from, meaning not every recall is covered. But all of the big ones are present and accounted for. There are badges for recalls B9A, 95B, and 68C, which are all recalls for the high voltage battery that could fail and cause a fire (the most recent of which was issued earlier this month). For the first two, the badges show a battery with flames on either side. The third one is a bit more tame, with a battery and a flammable symbol paired together.

There’s also Y46, which corresponds to a recall involving faulty seals for 4xe charging cables. That one shows a little charging symbol with bolts of lightning coming from the charging insert. My personal favorite has to be the badge for recall campaign Y94, which discovered that certain first-year 4xes simply stopped displaying their odometers in their digital gauge clusters. This badge shows a four-digit odometer with a bunch of question marks, which is pretty hilarious.

Posted by Chris Hall on Wednesday, November 19, 2025

The main difference between these badges and the Subaru Badges of Ownership is that these aren’t free. Loot Designs wants $20 per badge, or $17 per badge if you buy two or more. A small price to pay to let the car behind know you’ve done your due diligence with required repairs.

Owners Seem To Like The Idea, At Least According to Facebook

The whole reason I found out about these badges is thanks to a post by a user who goes by Ken Powers in the Jeep 4xe Enthusiasts Facebook Group. Powers designed a “badge of honor” of his own for the latest fire warning recall, complete with raised lettering. If you have a 3D printer, you can download and print the design right now.

Honor 4xe 1296x
Any sane 4xe owner would want to collect them all, right? Source: Loot Designs

I expected most of the comments to be unsupportive of Powers’ idea, as it highlights flaws in the 4xe’s design. But everyone in the comment section—most of whom are likely other 4xe owners—seemed to love it. “God, what a great idea,” said one commenter. “I will absolutely buy one if you get this to finished product,” said another.

I guess 4xe owners have a pretty good sense of humor. If you managed to hold onto your car even after all these recalls, you must.

Top graphic images: Loot Designs; Jeep

The post This Jeep Is Getting Recalled So Much That Owners Are Making Recall Merit Badges appeared first on The Autopian.

Read the whole story
LeMadChef
21 hours ago
reply
Denver, CO
Share this story
Delete

Microsoft makes Zork I, II, and III open source under MIT License

1 Share

Zork, the classic text-based adventure game of incalculable influence, has been made available under the MIT License, along with the sequels Zork II and Zork III.

The move to take these Zork games open source comes as the result of the shared work of the Xbox and Activision teams along with Microsoft’s Open Source Programs Office (OSPO). Parent company Microsoft owns the intellectual property for the franchise.

Only the code itself has been made open source. Ancillary items like commercial packaging and marketing assets and materials remain proprietary, as do related trademarks and brands.

“Rather than creating new repositories, we’re contributing directly to history. In collaboration with Jason Scott, the well-known digital archivist of Internet Archive fame, we have officially submitted upstream pull requests to the historical source repositories of Zork I, Zork II, and Zork III. Those pull requests add a clear MIT LICENSE and formally document the open-source grant,” says the announcement co-written by Stacy Hafner (director of the OSPO at Microsoft) and Scott Hanselman (VP of Developer Community at the company).

Microsoft gained control of the Zork IP when it acquired Activision in 2022; Activision had come to own it when it acquired original publisher Infocom in the late ’80s. There was an attempt to sell Zork publishing rights directly to Microsoft even earlier in the ’80s, as founder Bill Gates was a big Zork fan, but it fell through, so it’s funny that it still ended up in the same place eventually.

To be clear, this is not the first time the original Zork source code has been available to the general public. The aforementioned Jason Scott uploaded it to GitHub in 2019, but the license situation was unresolved, and Activision or Microsoft could have issued a takedown request had they wished to.

Now that’s obviously not at risk of happening anymore.

Read full article

Comments



Read the whole story
LeMadChef
5 days ago
reply
Denver, CO
Share this story
Delete

‘That Was Really Quite A Car.’ GM President Admits Canceling The EV1 Was A Bad Idea

1 Share

Ah, the EV1. General Motors’ electric moonshot of the late 1990s has become a legend, solidifying itself as the first modern EV for the masses, despite just a handful being leased to owners—several of whom were celebrities—before they were taken back by the company and mostly crushed.

The EV1’s tale is a fascinating one, with tons of data out there about how the car came to be, and all of the interesting ways engineers made it happen. I highly recommend reading David Tracy’s write-up on the EV1 factory service manuals he picked up last year, or our exclusive story on how there was nearly an EV1 convertible.

With just 137 horsepower from a single electric motor, 26 lead-acid batteries, and around 90 miles of range, the EV1 wasn’t exactly mind-blowing by modern EV standards. But it was vastly ahead of its time. This was a viable battery-powered car that hit the market over 10 years before the Tesla Roadster, after all. GM was way ahead of the game and in a position to set itself up for success in the decades to come.

Of course, everyone knows what happened next. Low demand and high costs forced GM to cancel the EV1 program, despite owners voicing their praise for the car. GM collected every example and crushed them, aside from around 40 cars, which were donated to museums and universities. It would be another decade until GM introduced another electric car to the market, the Spark EV, in 2013.

2014 Spark Ev
The 2014 Spark EV. Source: Chevrolet

With the electric car market as big and important as it is now, President Mark Reuss, understandably, wishes GM weren’t so quick to lower the EV1 to its grave. When asked about what he’d change with hindsight in an interview with InsideEVs, he brings up the revolutionary EV almost immediately:

I wasn’t around for EV1; I wasn’t in the company. But I think that might have been one example of something that we, the company, should not have done, which was canceling that; that was really quite a car.

The EV1 was a game-changer for a lot of reasons. It introduced stuff like low-rolling-resistance tires, regenerative braking, HVAC heat pumps, and keyless ignition. Gen-two cars got nickel-metal hydride (NiMH) batteries, which doubled range, while third-generation cars got even longer-range lithium-polymer batteries. It also had a drag coefficient of just 0.19, beating out modern equivalents like the Lucid Air and the Mercedes-Benz EQS. While most other manufacturers hadn’t even figured out EVs, GM was already hundreds of steps ahead. Who knows just how far ahead the company would be now in the EV space had it stuck with developing the car further.

Exploded 1 23 25
Source: GM

While Reuss believes the EV1 was a stopping point, others at the company believed it was a stepping stone. Gary Witzenburg, GM’s EV program Vehicle Test and Development manager during the EV1’s development, said as much in 2021 in a retelling of the car’s chaotic history, which he wrote for Hagerty:

The momentum the EV1 program generated led to fuel cell electric vehicle (FCEV) research; Allison hybrid buses; plus “two-mode” hybrid technology for trucks, SUVs, and two generations of extended-range electric (EREV) Chevrolet Volts. (Successful and satisfying as the Volts were, they were too costly to be profitable.) Now GM touts the battery-electric (BEV) Chevy Bolt and Bolt EUV, with many more electric vehicles to come.

Witzenburg believed it was limited battery tech that held GM back from building the EV1’s successor in the early 2000s, rather than cost or demand. Whether you agree with him or not, Reuss seems to have learned from the past, going by the rest of that InsideEVs interview:

I think the strategy that we set a few years ago to grow our company with electric vehicles and ICE vehicles, and being able to manufacture some of those in the same place, like Spring Hill, Tennessee, and have cell plants in the United States located in the places we do. You can talk about adoption rate, you can talk about where we are today. But all I know is the adoption rate isn’t as quick as what we thought it was going to be.

Ev1 1 1 23
Source: GM

The tax credit goes away, what’s going to happen? We’re going to see what happens. But I can tell you that a high percentage of people with buying a electric vehicle, for instance, buy another one. Yeah. So that’s a really good flywheel to be on, and a good trend that’s long term. And while the rate may fluctuate year to year in terms of how many, it’s permanent and it’s real. And I don’t I don’t see ever not being a big part of the U.S. auto industry.

So, despite the notion that EV sales will soon dip in America due to tariff costs and a lack of federal tax credits, don’t expect GM to give up on the tech any time soon.

You can watch the full interview below:

Support our mission of championing car culture by becoming an Official Autopian Member.

The post ‘That Was Really Quite A Car.’ GM President Admits Canceling The EV1 Was A Bad Idea appeared first on The Autopian.

Read the whole story
LeMadChef
9 days ago
reply
Denver, CO
Share this story
Delete
Next Page of Stories