Skip to content

Ecosystem name resolution security problem #229

@JJ

Description

@JJ

This isue was raised because, all of a sudden, documentation dependencies included GTK::Simple, a problem raised in this issue. The issue was solved by simply eliminating Pod::To::HTML from the dependencies. But then, investigating this issue, I arrived to this in Pod::to::HTML which states that it no longer can be installed properly unless you qualify it with an auth meta. Again, by issuing a zef search over this module, I found:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ID|From                             |Package                                             |Description                                                                                    
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0 |Zef::Repository::Ecosystems<p6c> |PodCache::Module:ver<0.3.1>:auth<Richard Hainsworth>|Render pod files from a cache.                                                                 
1 |Zef::Repository::Ecosystems<p6c> |Raku::Pod::Render:ver<3.1.0>:auth<github:finanalyst>|A generic Pod Renderer for single or multiple files using templates, provides HTML and MarkDown
2 |Zef::Repository::Ecosystems<p6c> |Pod::To::HTML:ver<0.7.1>:auth<github:Raku>          |Convert Raku Pod to HTML                                                                       
3 |Zef::Repository::LocalCache      |Raku::Pod::Render:ver<3.1.0>:auth<github:finanalyst>|A generic Pod Renderer for single or multiple files using templates, provides HTML and MarkDown
4 |Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.3.16>                           |Convert Perl 6 Pod to HTML                                                                     
5 |Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.3.17>                           |Convert Perl 6 Pod to HTML                                                                     
6 |Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.6.0>:auth<Perl 6>               |Convert Perl 6 Pod to HTML                                                                     
7 |Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.6.1>:auth<Perl 6>               |Convert Perl 6 Pod to HTML                                                                     
8 |Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.3.22>                           |Convert Perl 6 Pod to HTML                                                                     
9 |Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.3.7>                            |Convert Perl 6 Pod to HTML                                                                     
10|Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.3.15>                           |Convert Perl 6 Pod to HTML                                                                     
11|Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.3.13>                           |Convert Perl 6 Pod to HTML                                                                     
12|Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.7.0>:auth<github:Raku>          |Convert Raku Pod to HTML                                                                       
13|Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.4.0>:auth<Perl 6>               |Convert Perl 6 Pod to HTML                                                                     
14|Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.6.2>:auth<Perl 6>               |Convert Perl 6 Pod to HTML                                                                     
15|Zef::Repository::LocalCache      |Pod::To::HTML:ver<0.3.15>                           |Convert Perl 6 Pod to HTML                                                                     
16|Zef::Repository::Ecosystems<cpan>|Pod::To::HTMLBody:ver<0.0.1>:auth<github:drforr>    |HTML body                                                                                      
17|Zef::Repository::Ecosystems<cpan>|Pod::To::HTML::Section:ver<0.1.0>:api<0>            |Convert a Pod6 document to HTML            

Which includes Raku::Pod::Render (there's also this issue requesting elimination of that dependency). Anyway, the module definition is properly qualified with a meta, although not in META6.json

The straightforward solution is obviously to try and qualify provides or dependencies in both ends, but in that case this would not be a problem-solving kind of problem. The fact is that, before finding out the solution, it was relatively easy to "grab" a particular name just by putting it in the "provides" section of a module. So the question is should we maybe add a check for this kidn of thing when new distributions are added to the ecosystem?

At least in the ones we can control, that is, not those uploaded to CPAN.

Metadata

Metadata

Assignees

No one assigned

    Labels

    fallbackIf no other label fits

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions