4 ms·
> no reason to change because they're still doing a useful job Sure, but keeping it compatible with your OS —when it receives updates— is on you. Backporting s
by oliwarner 9y ago
> no reason to change because they're still doing a useful job
Sure, but keeping it compatible with your OS —when it receives updates— is on you. Backporting security patches from Python 3, 4, 5 etc are on you.
I'll grant you, if you're running an air-gapped machine with no keyboard, ports or basically any external IO, you probably needn't worry too much about security. But that would put you in 0.0000000001% of deployments.
Everybody else should treat unmaintained Python 2 interpreters as dangerous zombies that need putting out of their misery. They're potentially vulnerable to whoknowswhat and past 2020 CPython isn't getting any fixes. If there's any vector into your system, it's a big fat target, and if vulnerable, a gateway into the rest the system/network/etc.
Python 2 is on life support.
They're pulling the plug on 2020-01-01.
You can choose to keep a zombie lurching around or you can give it a good death.
- Chris2048 9y agoWho is they though? Why can't a community grow around python2?
- oliwarner 9y agoIt can, but if it wants to release software, it'll have to use another name.
- Silhouette 9y agoThis is exactly the kind of overstatement I am challenging here. Python is a programming language. The Python 2 interpreter has been around for a long time. We're not talking about some brand new, Internet-facing server software here. The odds of any sort of critical security issue in the Python 2 interpreter itself are very small, and for anything in the associated libraries there are plenty of other options if they should ever become necessary. This meme that any software that has moved beyond its original publisher's chosen end date for support is suddenly a threat to all human existence really needs to die. Aside from being obviously untrue in cases where the software is open source and available to the wider community to fix or update independently, security is all about managing risk. If you're going to consider this a "dangerous zombie", I hope you also aren't waiting up to a month for your OS developer to release their next bundle of security issues and then spending further days evaluating them in a lab before deploying them, and I that you have snapshot-based filesystems with offsite backups taken every few minutes on all your machines in case some idiot on your network brings ransomware in on a USB stick without realising. Those surely reflect far higher risks than continuing to automate with useful, tried-and-tested Python 2 scripts the same way you have been for the past decade or so.
- oliwarner 9y agoIs it an overstatement? Python is handling every bit of IO in your application. You're at the mercy of the implementation to handle it safely. You're talking about the odds as if nothing has ever been found wrong in the stock CPython interpreter. It's certainly low traffic compared to something like a browser, but there's plenty of bad stuff[1]. That suggests it's pretty likely there will be more after the 2020 deadline, they just won't get a fix. I'm also not sure why you're slinging around IT practice (a month is extraordinary, IMO, but CI testing updates is industry standard around here). What's wrong with good backups? [1]: https://www.cvedetails.com/product/18230/ https://www.cvedetails.com/product/18230/
- Silhouette 9y agoPython is handling every bit of IO in your application. You're at the mercy of the implementation to handle it safely. Sure, but that's true of any programming you ever do in any language. It's certainly low traffic compared to something like a browser, but there's plenty of bad stuff[1]. Would any of those vulnerabilities be a concern if you're using Python for local scripting and automation needs or the like, though? Obviously if you're running untrusted code or processing data from external and potentially hostile sources then you may have a different risk assessment, but Python is used for far more than just things like writing the back ends for web apps. I'm also not sure why you're slinging around IT practice (a month is extraordinary, IMO, but CI testing updates is industry standard around here). What's wrong with good backups? My point was that many organisations already defer installing updates in far more vulnerable areas, such as their Windows machines, for up to a month (because Microsoft chooses to bundle them into monthly patch releases barring the occasional very serious exception) and then typically larger organisations will test out each update in a lab before deploying it more widely, causing further delay. In the meantime, that's a month or more that every machine on the network is potentially vulnerable to whatever exploits might be out there that the patch will eventually prevent. This is standard practice in Windows-based environments, and yet the risk involved is surely far higher than anyone exploiting the Python executable you've kept installed because you have a decade of useful Python 2 scripts around and don't feel like rewriting them all because someone declared Python 2 was dead. Likewise, a large organisation getting hit by ransomware can obviously be crippling and the best defence is having back-ups as recent as possible so you can immediately restore any encrypted data. And yet, again, most organisations don't have that sort of infrastructure in place, and again, this is surely a much greater risk than having Python 2 around to run all your old Python 2 scripts.