Skip to content

Commit 6699172

Browse files
authored
blog: inbox.ru squatting campaign (#18372)
* blog: inbox.ru squatting campaign Signed-off-by: Mike Fiedler <[email protected]> * rephrased Signed-off-by: Mike Fiedler <[email protected]> --------- Signed-off-by: Mike Fiedler <[email protected]>
1 parent 21e227f commit 6699172

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
title: "Prohibiting inbox.ru email domain registrations"
3+
description: We have prohibited new registrations of accounts using inbox.ru email domains.
4+
authors:
5+
- miketheman
6+
date: 2025-06-15
7+
tags:
8+
- security
9+
- transparency
10+
---
11+
12+
A recent spam campaign against PyPI has prompted an administrative action,
13+
preventing using the `inbox.ru` email domain.
14+
This includes new registrations as well as adding as additional addresses.
15+
16+
The campaign created over 250 new user accounts,
17+
publishing over 1,500 new projects on PyPI,
18+
leading to end-user confusion, abuse of resources, and potential security issues.
19+
20+
All relevant projects have been removed from PyPI, and accounts have been disabled.
21+
22+
<!-- more -->
23+
24+
## Background
25+
26+
Users are welcome to use any valid email address to register a new account,
27+
however this delegates some of the responsibility of account security
28+
to the email provider.
29+
30+
PyPI uses the [`disposable-email-domains`](https://github.com/disposable-email-domains/disposable-email-domains)
31+
list to prevent new registrations using disposable email addresses,
32+
and PyPI maintains its own internal block list,
33+
updated by PyPI Admins in response to discovering abuse.
34+
35+
See a [previous post](./2024-06-16-prohibiting-msn-emails.md)
36+
for a previous case of prohibiting a popular email domain provider.
37+
38+
## Timeline
39+
40+
Here's a timeline of the events I was able to put together
41+
42+
- 2025-06-09 first user account created, verified, 2FA set up, API Token provisioned
43+
- 2025-06-11 46 more user accounts created over the course of 3 hours
44+
- 2025-06-24 207 more user accounts created over the course of 4 hours
45+
- 2025-06-29 New projects are created a file uploads start
46+
47+
Here's a table showing how many projects were published on each date:
48+
49+
| Date | Number of Projects |
50+
|------------|--------------------|
51+
| 2025-06-26 | 9 |
52+
| 2025-06-27 | 295 |
53+
| 2025-06-28 | 39 |
54+
| 2025-06-29 | 119 |
55+
| 2025-06-30 | 740 |
56+
| 2025-07-01 | 249 |
57+
| 2025-07-02 | 46 |
58+
| 2025-07-10 | 16 |
59+
| 2025-07-11 | 12 |
60+
61+
Total: 1,525
62+
63+
## Details
64+
65+
The projects were created with a variety of names with no code inside,
66+
so this wasn't a case of malware, but possibly using popular projects' entrypoints
67+
(often a command line execution interface),
68+
as those are not required to be the same as the **project name** on PyPI.
69+
70+
This pattern seems to be consistent with setting up a large number of accounts,
71+
confirming access, and then executing a large-scale "attack".
72+
This may have proven to be a "dry run" for a future attack,
73+
depending on the success of this campaign.
74+
75+
PyPI Admins were alerted to this condition initially on 2025-07-08
76+
from a user telling us that they were working with a Large Language Model (Sonnet 4)
77+
recommending installing a project that did not exist - aka ["slopsquatting"](https://en.wikipedia.org/wiki/Slopsquatting).
78+
This is a good reminder that users should always verify the project names they are installing,
79+
and not copy & paste the name of a project suggested by a third party,
80+
such as an AI model or random person on the internet.
81+
82+
Thanks again to users who are vigilant and report issues to us!
83+
84+
Hopefully we can reverse this decision at some point in the future when
85+
we have more confidence in this email provider's ability to prevent abuse.
86+
If you work at this provider, please email us at [[email protected]](mailto:[email protected])
87+
to discuss this decision.

0 commit comments

Comments
 (0)