LockerGnomeTech news and nostalgia for today's technology professionals
Subscribe

Search

Securityblueskyat-protocolrssprivacyskyreaderpds

Skyreader RSS Subscriptions Stored on AT Protocol PDS Records Are Public, Exposing Paywalled and Private Feed URLs

Melanie Kat pulled more than 1,300 RSS feed URLs from public app.skyreader.feed.subscription records on Bluesky's AT Protocol, including private feeds for Club MacStories, 404 Media full text, Patreon and GitLab, because every record on a PDS is readable by anyone.

Chris sits reading a tablet in a lit shop window at dusk, his feed cards with little keys on open display behind the glass.
Illustration: LockerGnome

Kat set out to explore apps built on the AT Protocol, the open network under Bluesky, and started with RSS readers because she’s a longtime RSS user. Skyreader had reviews on the app directory atstore.fyi, and those reviews sat next to the reviewers’ account names.

On the AT Protocol, your data lives on a personal data server, or PDS, and Kat notes “it’s mostly public.” Before connecting her own account, she plugged reviewers’ handles into PDSls.dev, a site for browsing PDS records, to see what Skyreader stored. Her finding: “each feed you subscribe to is published in the lexicon … app.skyreader.feed.subscription which contains a key called feedUrl that contains the RSS feed.”

That matters because a private RSS feed usually carries its password inside the address. Kat found the MacStories feed first, then “with a little effort … paywalled feeds for 404 Media’s full text feeds, Patreon backer exclusive feeds, and private RSS feeds for Gitlab repositories.” Anyone holding one of those URLs can read what the subscriber paid for.

She didn’t stop at individual accounts. By querying a Bluesky relay for every account holding an app.skyreader.feed.subscription collection, then asking each account’s PDS for the records, she gathered more than 1,300 subscribed feeds. And she says it’s not only a Skyreader thing: “a few Discord clones store every message openly,” and on the streaming site Stream.place she can watch chat across channels and search it.

Skyreader’s developer, Tim Disney, saw the problem coming. In issue #47, filed January 21, he wrote, “Currently add subscriptions are stored on the user’s PDS which is public.” Two days later he closed it: “Decided to just not sync subscriptions to PDS for now since messaging that is confusing. PDS private storage when it comes.”

Today, Skyreader’s data documentation says “Your feed list is private, stored on Skyreader.” Writing it to your PDS is an opt-in setting called Atmospheric sync, under Settings, Library & privacy, Subscriptions, and the docs spell out the cost: “sync makes your subscription list something anyone can look up.”

The protocol’s own fix isn’t ready yet. In an August 20 post announcing Spaces, the AT Protocol team wrote, “Recall that, by design, all data stored on the protocol today is public.” Spaces “provide a way to store and sync non-public data,” including one-member spaces for “settings, drafts, bookmarks and other private data,” but the team calls it “truly an alpha” and says “you absolutely should not run production code against it.” Kat’s post doesn’t say whether the 1,300 feeds came from people who switched on Atmospheric sync or from records written before Skyreader stopped syncing by default, and Skyreader’s docs don’t say whether turning sync off removes the old records from the PDS.

More Security

Every Security story →