Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reverting https://github.com/yaml/pyyaml/pull/74 #194

Closed
wants to merge 1 commit into from

Conversation

ingydotnet
Copy link
Member

The reversion of the #74 code was without conflict against master.

This commit has been applied to the release/4.2 branch. See #193 for details of how the 4.2 release is proceeding and how this issue will make it back into PyYAML.


This reverts commit bbcf95f.
This reverts commit 7b68405.
This reverts commit 517e83e.

Revert "Make pyyaml safe by default."

This reverts commit bbcf95f.
This reverts commit 7b68405.
This reverts commit 517e83e.
@sigmavirus24
Copy link
Contributor

Outside of the normal cast of YAML contributors, the Python community has spoken to the fact that this is not a desirable change. At this point it seems like the people who are trying to contribute to this discussion as actual users of PyYAML have voiced their opinion and the rest of the YAML world has said "Nah, that's okay" which is exactly what is being signaled in this PR. Please, let's not ignore the users of this library who want their libraries to not allow RCEs by default.

@ingydotnet
Copy link
Member Author

@sigmavirus24 It should be clear, as I thought I think it is in #193 that a fix to this issue ( #74 / #189 ) is being worked on and will be released as soon as an agreed upon solution is available.

  • Make pyyaml safe by default. #74 is not acceptable in its current form.
  • It was introduced without my knowledge or approval.
  • That happened almost a year ago.
  • PyYAML has had safe options since the very beginning.
  • Exploitable use of it has been out there for 12+ years.

We can take a little time to find a win/win solution for both the YAML and Python communities. Hopefully that will happen in the 4.2 release. And if not, then shortly after.

I hope that people will join in to help out with the PyYAML release effort. Currently there are just 4 people trying their best to make this happen. Join irc.freenode.net #pyyaml

@sigmavirus24
Copy link
Contributor

@ingydotnet And this is why I've stopped working on the project. It's impossible to maintain something when one person needs to approve everything and the people doing the work don't have a say in how the work is done. This is why you have so few people trying to help you. Good luck.

@perlpunk
Copy link
Member

perlpunk commented Jul 1, 2018

@sigmavirus24 I think nobody's ignoring users here.
I would be very sad if the next version does not have a safe default, but:

@perlpunk
Copy link
Member

perlpunk commented Jul 1, 2018

@sigmavirus24

It's impossible to maintain something when one person needs to approve everything

I agree that we should not have a rule like that. It depends on the kind of PR, though.
In the end, there is a person or a group of persons responsible for the release, and everone of those should be aware of the changes. If it's a big API change, this should be discussed with everybody of the team.

the people doing the work don't have a say in how the work is done

I fail to see evidence for this. (But note that I started following pyyaml only a few months ago)

@sigmavirus24
Copy link
Contributor

It doesn't matter. I left the org. I'm abandoning this project. If someone is supposed to be the lead on a project, they're the lead on a project and should be able to make controversial decisions without needing everyone's permission who has ever been adjacent to the project. I'm ignoring this project, so mentioning me will no longer generate notifications.

@wimglenn
Copy link

wimglenn commented Aug 15, 2018

This is unfortunate. Removing a release from the index is a faux pas, PyPI should be considered immutable unless it's an emergency - better to release a 5.0 if it was deemed absolutely necessary to break from 4.x.

Copy link

@KevinHock KevinHock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was fine as is

@perlpunk
Copy link
Member

merged in ccc40f3

mtremer pushed a commit to ipfire/ipfire-2.x that referenced this pull request Feb 14, 2022
- Update from 3.13 to 6.0
- Update of rootfile
- Changelog
6.0 (2021-10-13)
* yaml/pyyaml#327 -- Change README format to Markdown
* yaml/pyyaml#483 -- Add a test for YAML 1.1 types
* yaml/pyyaml#497 -- fix float resolver to ignore `.` and `._`
* yaml/pyyaml#550 -- drop Python 2.7
* yaml/pyyaml#553 -- Fix spelling of “hexadecimal”
* yaml/pyyaml#556 -- fix representation of Enum subclasses
* yaml/pyyaml#557 -- fix libyaml extension compiler warnings
* yaml/pyyaml#560 -- fix ResourceWarning on leaked file descriptors
* yaml/pyyaml#561 -- always require `Loader` arg to `yaml.load()`
* yaml/pyyaml#564 -- remove remaining direct distutils usage
5.4.1 (2021-01-20)
* yaml/pyyaml#480 -- Fix stub compat with older pyyaml versions that may unwittingly load it
5.4 (2021-01-19)
* yaml/pyyaml#407 -- Build modernization, remove distutils, fix metadata, build wheels, CI to GHA
* yaml/pyyaml#472 -- Fix for CVE-2020-14343, moves arbitrary python tags to UnsafeLoader
* yaml/pyyaml#441 -- Fix memory leak in implicit resolver setup
* yaml/pyyaml#392 -- Fix py2 copy support for timezone objects
* yaml/pyyaml#378 -- Fix compatibility with Jython
5.3.1 (2020-03-18)
* yaml/pyyaml#386 -- Prevents arbitrary code execution during python/object/new constructor
5.3 (2020-01-06)
* yaml/pyyaml#290 -- Use `is` instead of equality for comparing with `None`
* yaml/pyyaml#270 -- Fix typos and stylistic nit
* yaml/pyyaml#309 -- Fix up small typo
* yaml/pyyaml#161 -- Fix handling of __slots__
* yaml/pyyaml#358 -- Allow calling add_multi_constructor with None
* yaml/pyyaml#285 -- Add use of safe_load() function in README
* yaml/pyyaml#351 -- Fix reader for Unicode code points over 0xFFFF
* yaml/pyyaml#360 -- Enable certain unicode tests when maxunicode not > 0xffff
* yaml/pyyaml#359 -- Use full_load in yaml-highlight example
* yaml/pyyaml#244 -- Document that PyYAML is implemented with Cython
* yaml/pyyaml#329 -- Fix for Python 3.10
* yaml/pyyaml#310 -- Increase size of index, line, and column fields
* yaml/pyyaml#260 -- Remove some unused imports
* yaml/pyyaml#163 -- Create timezone-aware datetimes when parsed as such
* yaml/pyyaml#363 -- Add tests for timezone
5.2 (2019-12-02)
* Repair incompatibilities introduced with 5.1. The default Loader was changed,
  but several methods like add_constructor still used the old default
  yaml/pyyaml#279 -- A more flexible fix for custom tag constructors
  yaml/pyyaml#287 -- Change default loader for yaml.add_constructor
  yaml/pyyaml#305 -- Change default loader for add_implicit_resolver, add_path_resolver
* Make FullLoader safer by removing python/object/apply from the default FullLoader
  yaml/pyyaml#347 -- Move constructor for object/apply to UnsafeConstructor
* Fix bug introduced in 5.1 where quoting went wrong on systems with sys.maxunicode <= 0xffff
  yaml/pyyaml#276 -- Fix logic for quoting special characters
* Other PRs:
  yaml/pyyaml#280 -- Update CHANGES for 5.1
5.1.2 (2019-07-30)
* Re-release of 5.1 with regenerated Cython sources to build properly for Python 3.8b2+
5.1.1 (2019-06-05)
* Re-release of 5.1 with regenerated Cython sources to build properly for Python 3.8b1
5.1 (2019-03-13)
* yaml/pyyaml#35 -- Some modernization of the test running
* yaml/pyyaml#42 -- Install tox in a virtualenv
* yaml/pyyaml#45 -- Allow colon in a plain scalar in a flow context
* yaml/pyyaml#48 -- Fix typos
* yaml/pyyaml#55 -- Improve RepresenterError creation
* yaml/pyyaml#59 -- Resolves #57, update readme issues link
* yaml/pyyaml#60 -- Document and test Python 3.6 support
* yaml/pyyaml#61 -- Use Travis CI built in pip cache support
* yaml/pyyaml#62 -- Remove tox workaround for Travis CI
* yaml/pyyaml#63 -- Adding support to Unicode characters over codepoint 0xffff
* yaml/pyyaml#75 -- add 3.12 changelog
* yaml/pyyaml#76 -- Fallback to Pure Python if Compilation fails
* yaml/pyyaml#84 -- Drop unsupported Python 3.3
* yaml/pyyaml#102 -- Include license file in the generated wheel package
* yaml/pyyaml#105 -- Removed Python 2.6 & 3.3 support
* yaml/pyyaml#111 -- Remove commented out Psyco code
* yaml/pyyaml#129 -- Remove call to `ord` in lib3 emitter code
* yaml/pyyaml#149 -- Test on Python 3.7-dev
* yaml/pyyaml#158 -- Support escaped slash in double quotes "\/"
* yaml/pyyaml#175 -- Updated link to pypi in release announcement
* yaml/pyyaml#181 -- Import Hashable from collections.abc
* yaml/pyyaml#194 -- Reverting yaml/pyyaml#74
* yaml/pyyaml#195 -- Build libyaml on travis
* yaml/pyyaml#196 -- Force cython when building sdist
* yaml/pyyaml#254 -- Allow to turn off sorting keys in Dumper (2)
* yaml/pyyaml#256 -- Make default_flow_style=False
* yaml/pyyaml#257 -- Deprecate yaml.load and add FullLoader and UnsafeLoader classes
* yaml/pyyaml#261 -- Skip certain unicode tests when maxunicode not > 0xffff
* yaml/pyyaml#263 -- Windows Appveyor build

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>

 --git a/config/rootfiles/packages/python3-yaml b/config/rootfiles/packages/python3-yaml
x 0870a2346..bd4009a08 100644
* yaml/pyyaml#195 -- Build libyaml on travis
* yaml/pyyaml#196 -- Force cython when building sdist
* yaml/pyyaml#254 -- Allow to turn off sorting keys in Dumper (2)
* yaml/pyyaml#256 -- Make default_flow_style=False
* yaml/pyyaml#257 -- Deprecate yaml.load and add FullLoader and Uns
oader classes
* yaml/pyyaml#261 -- Skip certain unicode tests when maxunicode not
xffff
* yaml/pyyaml#263 -- Windows Appveyor build

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants