🐍📦✨Python people!
We want *your* feedback on Python Packaging!
Please help us by responding to our survey @ bit.ly/3qmFQ69
Please RT for reach!
🐍📦✨
Python Package Index
@pypi
The Python Package Index (PyPI) is a repository of software for the Python programming language.
Follow for service updates, advisories, and curiosities.
Python Package Index’s Tweets
You can now include mathematical expressions in your rST or Markdown project description on .
Example here: pypi.org/project/source
Thanks to contributor for implementing this!
9
28
As of this morning, more than 30,000 users have 2FA enabled 🎉
That big bump on the left is the day we announced the security key giveaway (which is still open!) pypi.org/security-key-g
2
25
82
Show this thread
The giveaway will run through Oct 1, at which point the provided discount codes will expire.
We’ll be sending emails to eligible maintainers later today to directly inform them as well.
More details on the giveaway in this thread:
Quote Tweet
We’ve begun rolling out a 2FA requirement: soon, maintainers of critical projects must have 2FA enabled to publish, update, or modify them.
To ensure that these maintainers can use strong 2FA methods, we're also distributing 4000 hardware security keys!
pypi.org/security-key-g
Show this thread
3
6
Show this thread
In light of yesterday’s phishing attack, we have updated the eligibility requirements for our security key giveaway.
Any maintainer of a critical project, regardless of whether they already have TOTP-based 2FA enabled, is now eligible:
3
35
74
Show this thread
We have additionally determined that the 'deep-translator' project was compromised and deep-translator==1.8.5 was a malicious release.
Quote Tweet
The malicious releases follow a similar pattern, again using linkedopports[dot]com. At this time, the malicious releases that we are aware of are:
- exotel==0.1.6
- spam==2.0.2 and ==4.0.2
We’ve additionally taken down several hundred typosquats that fit the same pattern.
Show this thread
1
17
29
Topics to follow
Sign up to get Tweets about the Topics you follow in your Home timeline.
Carousel
Finally, if you believe you’ve received a phishing email, please contact security@pypi.org with details about the sender email address and URL of the malicious site to help us respond to this issue.
And thanks to everyone who reported this attempt!
2
10
48
Show this thread
In order to prevent phishing attacks from succeeding, enable 2FA, ideally using hardware security keys or WebAuthn two-factor authentication: pypi.org/2fa/
PyPI is currently offering free hardware keys for maintainers of the top 1% of projects:
1
7
48
Show this thread
How to protect yourself: If you believe you may have entered credentials on a phishing site:
- reset your password
- reset your 2FA recovery codes
- review pypi.org/manage/account and pypi.org/manage/account for suspicious activity
1
9
39
Show this thread
What we’re doing: We’re actively reviewing reports of new malicious releases, and ensuring that they are removed and the maintainer accounts restored. We’re also working to provide security features like 2FA more prevalent across projects on PyPI.
3
3
37
Show this thread
The malicious releases follow a similar pattern, again using linkedopports[dot]com. At this time, the malicious releases that we are aware of are:
- exotel==0.1.6
- spam==2.0.2 and ==4.0.2
We’ve additionally taken down several hundred typosquats that fit the same pattern.
3
20
54
Show this thread
We have additionally determined that some maintainers of legitimate projects have been compromised, and malware published as the latest release for those projects.
These releases have been removed from PyPI and the maintainer accounts have been temporarily frozen.
2
36
85
Show this thread
When credentials are entered on the phishing site sites[dot]google[dot]com/view/pypivalidate, the data is sent to a URL on the domain linkedopports[dot]com.
2
1
35
Show this thread
The link takes the user to a phishing site mimicking PyPI’s login page, which steals any credentials entered.
We are unable to determine whether the phishing site was designed to relay TOTP-based two-factor codes. Accounts protected by hardware security keys are not vulnerable.
2
14
61
Show this thread
Note that PyPI will NEVER remove a valid project from the index. PyPI only removes projects which violate our TOS or are in some way determined to be harmful (e.g., malware).
1
7
76
Show this thread
Background: the phishing message claims that there is a mandatory ‘validation’ process being implemented, and invites users to follow a link to validate a package, or otherwise risk the package being removed from PyPI.
4
24
84
Show this thread
Today we received reports of a phishing campaign targeting PyPI users. This is the first known phishing attack against PyPI.
We’re publishing the details here to raise awareness of what is likely an ongoing threat.
20
671
845
Show this thread
We are grateful for 's support of PyPI as a Visionary sponsor of . Sponsorship funds not only help us maintain what we have but will also help us with future improvements! #thankyou
2
21
Thank you for supporting PyPI. Through sponsorships and grants, raised over $300,000 for PyPI’s use. Let’s keep that momentum going! python.org/sponsors/appli
9
24
143
Monitoring: Error rates have returned to baseline, and latencies continue to return to normal across our services. We will continue to monitor as the database upgrades complete and caches re-fill.
1
2
4
Show this thread
Monitoring: Our backends have begun to stabilize as the caches are refilled. During the peak of the backend traffic from our CDN we recognized a few bottlenecks in our database layer and have provisioned additional storage IOPs in ord…
1
2
2
Show this thread
Monitoring: Purge All has been issued and we are monitoring as the backends attempt to meet the request volume. We anticipate that the service will continue to stabilize and reach steady state over the next 30-90 minutes.
1
1
4
Show this thread
Monitoring: In order to resolve an issue in our CDN cache caused by a misconfiguration of Surrogate-Keys, PyPI will need to issue a "Purge All" of our CDN to clear out lingering cached objects that are not accessible to purge individu…
1
1
3
Show this thread
We published a postmortem on our July 28th incident:
1
6
Show this thread
Support from organizations like Qube Research & Technologies Limited help keep PyPI running and allow us to continually keep improving it. Thank you, thank you!
Head to Linkedin and connect with QRT: bit.ly/3iAqF5g
4
Thank you to for financially supporting PyPI through ’s sponsorship program. Every sponsorship has an impact on PyPI’s sustainability and maintenance. Considering being a sponsor? Email sponsors@python.org
1
10
We truly appreciate for demonstrating their support of PyPI by becoming a Maintaining sponsor. Their generosity ensures that we can improve and sustain PyPI for many generations to come - thank you!
8
PS: If you're trying to redeem your code and getting 'Promo code doesn't apply', increase your quantity in the cart from 1 key to 2 keys!
Our intention is for everyone to be able to have a secondary backup key in addition to their primary key.
1
11
40
Show this thread
Ensuring that the most widely used projects have these protections against account takeover is one step towards our wider efforts to improve the general security of the Python ecosystem for all PyPI users.
You can track our progress on our dashboard:
p.datadoghq.com/sb/7dc8b3250-3
1
8
38
Show this thread
We've also enabled a feature that will allow any project to opt-in to a 2FA requirement for its maintainers: this can be enabled in the settings for each individual project.
This can be enabled/disabled for non-critical projects at any time.
2
3
34
Show this thread
Who's eligible?
Project eligibility is based on downloads: any project in the top 1% of downloads over the prior 6 months is designated as critical (as well as PyPI's own dependencies).
Today, we’ve notified maintainers of those projects via email. But that's not all!
3
12
46
Show this thread
We’ve begun rolling out a 2FA requirement: soon, maintainers of critical projects must have 2FA enabled to publish, update, or modify them.
To ensure that these maintainers can use strong 2FA methods, we're also distributing 4000 hardware security keys!
16
300
770
Show this thread
Thank you for supporting PyPI as a Supporting sponsor. Through sponsorships and grants, raised over $300,000 for PyPI’s use. Let’s keep that momentum going! python.org/sponsors/appli
6
We published a postmortem on our June 27th incident:
4
4
Show this thread
Resolved: This incident has been resolved.
1
1
4
Show this thread
Monitoring: We've disabled the specific tasks causing delays in the queue and are continuing to monitor the queue as it drains.
2
1
1
Show this thread
Identified: We've identified specific jobs in our queue that are causing processing delays and are working to remove them.
1
1
Show this thread


