Replies: 2 comments · 2 replies
-
Thank you very much for writing this up and investigating it. This alleviates my concerns about the possibility of this happening again in the future. I'll update the blog post I'd written about this to reflect your update here. Much appreciated! |
Beta Was this translation helpful? Give feedback.
2 replies
-
This was well handled, thank you. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Between July 1st and July 10th, an internal error led to the unintended deletion of over 300 package versions from NuGet.org. This was not due to a security breach or external attack, but a result of flaws in our internal review and automation processes. We are truly sorry for the serious disruption this caused and take full responsibility.
Thank you to everyone who reached out with questions like the ones below. We wanted to share what happened, the impact, how we resolved it, and most importantly what we are doing to ensure it never happens again.
What Happened
After the discovery of a malicious website registered to a typo in a popular package (Microsoft.Identity.Client), we responded by removing certain dependent packages from NuGet.org as a precaution. A combination of automated tools, insufficient safeguards in review process, and miscommunication led to the erroneous deletion of hundreds of package versions.
This action, while intended to protect the ecosystem, inadvertently affected 111 package authors and their users. We are improving our processes immediately to ensure more robust safeguards and clearer communication moving forward.
Impact
Resolution
Once we identified the issue, all package deletion activities were halted right away to prevent further impact.
We took the following steps:
As of July 16th, all impacted packages are restored and available on NuGet.org, with no data permanently lost.
Root Cause
The root cause of this incident was a flawed internal process that allowed a legitimate security concern to trigger incorrect action on a disproportionate scale. Specifically, a typo-squatting URL discovered in a single package led our automated systems to flag related packages as potentially unsafe due to transitive dependencies.
The decision to delete these packages was not malicious or externally influenced. Package removal is considered only in rare and extreme cases where there is potential for imminent harm to the NuGet community. However, in this instance the decision was made under incomplete information, ambiguous internal communication, and without a formal approval process appropriate for a high-impact action of this scale.
Improving Policy
To ensure this never happens again, we have overhauled our processes to prioritize caution, accountability, and communication. Deletion has always been a last resort to protect the NuGet community from the potential of imminent harm from a package. We are now adding checks to bolster the process to give strong preference for safer actions like un-listing or advisories.
New Safeguards
Looking Forward
NuGet exists to support the developer community. In this case, we disrupted that mission. We are sorry for the impact caused and are committed to restoring your trust.
Thank you to everyone who spoke up and helped us respond faster and better. We're listening, we're learning, and we're improving.
If you're still affected or have further questions, please reach out to support@nuget.org
– The NuGet Team
Beta Was this translation helpful? Give feedback.
All reactions