$ sudo gem install hoe
Install required dependency zentest? [Yn] ^CERROR: Interrupted
There is no gem by the name of 'zentest', and hoe will likely never
depend on 'ZenTest'.
Until this is fixed you won't be able to install any Gems built with
hoe-1.1.7.
--
Eric Hodel - drb...@segment7.net - http://blog.segment7.net
I LIT YOUR GEM ON FIRE!
> Somehow hoe-1.1.7 has become poisoned in the RubyGems index:
> $ sudo gem install hoe
> Install required dependency zentest? [Yn] ^CERROR: Interrupted
> There is no gem by the name of 'zentest', and hoe will likely never
> depend on 'ZenTest'.
> Until this is fixed you won't be able to install any Gems built
> with hoe-1.1.7.
This is obviously the work of someone extending rubygems to have
developer dependencies. Regardless of intent: you had NO RIGHT to
upload ANYTHING to the gem repository under someone else's name or
project. NONE. EVER. To say that I'm unhappy about this (and you) is
a vast f@cking understatement.
P.S. There is a suite of unit tests built-in to rubygems for exactly
this purpose. You might want to try writing some quality code before
you decide you're equipped enough to start working on rubygems.
> Somehow hoe-1.1.7 has become poisoned in the RubyGems index:
>
> $ sudo gem install hoe
> Install required dependency zentest? [Yn] ^CERROR: Interrupted
>
> There is no gem by the name of 'zentest', and hoe will likely never
> depend on 'ZenTest'.
>
> Until this is fixed you won't be able to install any Gems built
> with hoe-1.1.7.
Actually, you can download hoe by hand:
http://rubyforge.org/frs/download.php/16275/hoe-1.1.7.gem
and install it by hand:
gem install hoe
To work around the infinite dependency loop.
--
Eric Hodel - drb...@segment7.net - http://blog.segment7.net
YOU LIT MY GEM ON FIRE!
>
> On Jan 14, 2007, at 12:30 AM, Eric Hodel wrote:
>
>> Somehow hoe-1.1.7 has become poisoned in the RubyGems index:
>> $ sudo gem install hoe
>> Install required dependency zentest? [Yn] ^CERROR: Interrupted
>> There is no gem by the name of 'zentest', and hoe will likely never
>> depend on 'ZenTest'.
>> Until this is fixed you won't be able to install any Gems built with
>> hoe-1.1.7.
>
> This is obviously the work of someone extending rubygems to have
> developer dependencies. Regardless of intent: you had NO RIGHT to upload
> ANYTHING to the gem repository under someone else's name or project.
> NONE. EVER. To say that I'm unhappy about this (and you) is a vast
> f@cking understatement.
>
Is the implication here that someone on seattle.rb uploaded a new gem, or
that someone hacked Rubyforge to do it, or what? Just wondering, since if
it's the latter others may need to check their gems too, and Tom Copeland
should probably hear about it.
--
Ross Bamford - ro...@roscopeco.remove.co.uk
You can upload a gem of any name to any rubyforge project including
gems with name collisions. It appears that somebody uploaded a
modified copy of hoe then deleted it shortly afterward.
Only the gem index has been poisoned, it seems that the bad hoe
didn't get mirrored.
The poisoning indicates it was done by somebody attempting to add
developer dependencies to RubyGems.
> Just wondering, since if it's the latter others may need to check
> their gems too,
While this upsets me to no end, I'll pin it on incompetence and/or
idoicy.
Whoever did this ignored a perfectly good set of unit tests, testing
tools, and the gem_server command itself to test out what they were
doing.
> and Tom Copeland should probably hear about it.
He's been notified, but he's asleep.
--
Eric Hodel - drb...@segment7.net - http://blog.segment7.net
YOU LIT MY GEM ON FIRE!
> On Jan 14, 2007, at 03:20, Ross Bamford wrote:
>> Is the implication here that someone on seattle.rb uploaded a new gem,
>> or that someone hacked Rubyforge to do it, or what?
>
> You can upload a gem of any name to any rubyforge project including gems
> with name collisions. It appears that somebody uploaded a modified copy
> of hoe then deleted it shortly afterward.
>
Gotcha. I didn't realise that. It's kind of worrying actually. Maybe
something that could be tightened up somehow by the Rubyforge folks?
>> Just wondering, since if it's the latter others may need to check their
>> gems too,
>
> While this upsets me to no end, I'll pin it on incompetence and/or
> idoicy.
>
> Whoever did this ignored a perfectly good set of unit tests, testing
> tools, and the gem_server command itself to test out what they were
> doing.
>
Yep, definitely sounds like some combination of the two....
>> and Tom Copeland should probably hear about it.
>
> He's been notified, but he's asleep.
>
Ahh, well, fair enough...
Thanks,
> Gotcha. I didn't realise that. It's kind of worrying actually. Maybe
> something that could be tightened up somehow by the Rubyforge folks?
Hmm... I think this is not entirely a RubyForge problem, but also
something to do with RubyGems, IIRC. I thought that on RubyForge we
had something that said 'gem name already exists'.
<shrugs>
It does need to be dealt with.
--
Chris Carter
concentrationstudios.com
brynmawrcs.com
> I want to apologize to the group on this one. It was cause my my
> utter incomptence, and I know I really screwed up here, I was testing
> adding dependencies, I thought I had it, and In a rush, I added the
> bad Hoe gem to rubyforge under a different name, which, I did wrong,
> and I shouldn't have done in the first place.
Please do not use RubyForge for testing without asking Tom first.
I think if security is an issue, you should not download directly from
RubyForge via gems, but set up an audited gem server locally. (Or
download the files and gem install them locally)
Of course, this does not mean that such a problem isn't seriously disruptive.
Tom is very responsive. This is not entirely a RubyForge issue
though. RubyGems needs to also know how to respond according to
conflicts.
At one point it was using a "*" after whatever your query was, I think
this has been fixed, but there needs to be work both with the service
(RubyForge) and the platform (RubyGems) to solve this problem.
I'm sure things will get taken care of accordingly.
This happened quite inadvertently to me this summer, and at the time,
Tom told me that Things had been Changed so that it wasn't possible
anymore. I wonder what happened?
> While this upsets me to no end, I'll pin it on incompetence and/or
> idoicy.
There's some chance it was an honest mistake, but I doubt it given the
circumstances :P
Ben
That's true. For example, I could upload a gem called "rails-2.0.gem"
to my project "foo" on RubyForge.
However, we built various checks into the gem index builder on RubyForge
to prevent such gems from being deployed. Perhaps there are holes in
these checks, and if so, we'll fix them.
Yours,
Tom
Hi Chris -
Can you please drop me a note offlist at t...@infoether.com? It seems
the code I wrote to prevent just these sorts of situations may not have
been sufficient. I'd definitely appreciate you help in sorting things
out...
Thanks,
Tom
We built various checks into the gem index builder on RubyForge
to prevent overlapping gems from being deployed. Perhaps there are
WTF? The "foo" project is MY project! What do you think you're doing?!
A clear cut case of foo poisoning.
:-P
Regards,
Dan
Just as an aside, you're not the first to do mistakes like this...
Sometime in September I uploaded a gem to RubyForge that was generated
with JRuby. At that point in time there was a flaw in the JRuby YAML
library that regular Ruby (and SYCK) couldn't handle, which resulted in
the complete RubyForge gem-index being broken for a few hours. Quite
embarrassing. (The JRuby issue was fixed very soon after that, of
course, and JRuby is now safe to use for generating gems).
I would like to add that I find Ryans words quite harsh in the context.
We all make mistakes.
--
Ola Bini (http://ola-bini.blogspot.com)
JvYAML, RbYAML, JRuby and Jatha contributor
System Developer, Karolinska Institutet (http://www.ki.se)
OLogix Consulting (http://www.ologix.com)
"Yields falsehood when quined" yields falsehood when quined.
:)
--
M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.blogspot.com/
If God had meant for carrots to be eaten cooked, He would have given rabbits fire.
Also, it seemed prudent to not deploy any more gems until we get this
sorted out. So I've commented out the cron job that does that.
Yours,
Tom
> Just as an aside, you're not the first to do mistakes like this...
yep, Turns out that ruport-lean was getting installed over ruport due
to that "*" rule a while back, so I've made the mistake too.
I've come to the point where any time I want to do something clever,
I've set up test environments both via gem_server and via static file
hosting like RubyForge does.
This way, if something goes wrong, it only effects me. When I get
around to it, I'll write a simple tutorial of how to set up your own
testing environment for this, and maybe talk a little bit to Tom about
getting the environment as close to RubyForge as possible.
I broke Ruby 1.8.3. So don't feel too bad!!
_why
Hehe, that's sweet. I don't feel about it anymore though, but at the
time it felt... icky. But I'm in a good timezone for breaking things
globally. Neither Americans nor Japanese people notice in some hours...
_why for the win.
> I would like to add that I find Ryans words quite harsh in the
> context. We all make mistakes.
Ryan's and Eric's, yes. They immediately assumed the worst and it's
now clear that was overreacting. It was an honest mistake.
James Edward Gray II
Chris,
Your public apology and offer to help in fixing any problems it caused
shows a lot of professionalism on your part. Everyone makes mistakes;
most people wouldn't voluntarily own up to them in front of the whole
community. You have my respect.
--
Regards,
John Wilger
http://johnwilger.com
> Chris,
>
> Your public apology and offer to help in fixing any problems it caused
> shows a lot of professionalism on your part. Everyone makes mistakes;
> most people wouldn't voluntarily own up to them in front of the whole
> community. You have my respect.
I agree with the sentiments and it's nice for folks to address this,
but let's not build a reactions thread here. Ryan and Eric's
rudeness speaks only of Ryan and Eric, and not of the folks who they
are rude too. I do hope most of the folks on the list realize they
only represent two of many Rubyists in the world who still think
MINASWAN is a good idea.
So, I'm just saying, let's not spend time justifying for them each
time some harsh words are said.
On the upside, the whole thing read like a murder mystery.
If the unit tests Ryan mentioned were automatically triggered by
uploading a gem, couldn't that operate as a gate preventing this sort
of thing? Wouldn't the best thing be to streamline the system so this
kind of thing can't happen?
--
Giles Bowkett
http://www.gilesgoatboy.org
http://gilesbowkett.blogspot.com
http://gilesgoatboy.blogspot.com
That's an interesting idea. We do run some tests on the gems before
deploying them, and we're adding more to catch the situation that
happened Saturday night. But perhaps we can add more from the gem unit
test suite itself.
> Wouldn't the best thing be to streamline the system so this
> kind of thing can't happen?
Right on, that's where we want to go.
Yours,
Tom
> On Mon, 2007-01-15 at 19:59 +0900, Giles Bowkett wrote:
> > If the unit tests Ryan mentioned were automatically triggered by
> > uploading a gem, couldn't that operate as a gate preventing this sort
> > of thing?
>
> That's an interesting idea. We do run some tests on the gems before
> deploying them, and we're adding more to catch the situation that
> happened Saturday night. But perhaps we can add more from the gem unit
> test suite itself.
executing code in the uploaded gems (if this is the case here - didn't
follow the thread all the time) might be dangerous itself. An attacker
could place some evil code(TM) in the unit tests and bork the rubyforge
server.
Cheers,
Steph.
Yup. Right now we parse the gem file itself, so that shouldn't happen.
But if we actually execute that code, we might want to do it in a
vserver or some such.
Yours.
Tom
If you're working on project X that you don't normally work on, look
for tests in project X and run those. Don't test by playing with the
live system.
Hey Tom-
I was just wondering when you were going to start pushing gems out
again? I released a gem yesterday morning and it still hasn't
propagated yet.
Thanks-
-- Ezra Zygmuntowicz
-- Lead Rails Evangelist
-- e...@engineyard.com
-- Engine Yard, Serious Rails Hosting
-- (866) 518-YARD (9273)
> I was just wondering when you were going to start pushing gems out
> again? I released a gem yesterday morning and it still hasn't
> propagated yet.
Basically, until we can get rubygems shored up to the point where
gems can't be poisoned again and the index can be trusted to be
correct/clean. I've got 2-3 gems pending too, but I'm more than
willing to wait at this moment considering what happened to hoe so
easily.
Yeah I'm fine with waiting on releases to get this fixed myself.
Just wondering is all.
Cheers-
Yup, sorry for the delay. Eric Hodel and Paul Duncan had some good
suggestions yesterday for fixing this and I need to get cracking on
those...
Yours,
Tom
There's a fix in place for this now and gems are being deployed as
usual. There were several gems whose spec.full_name settings prevented
them from being deployed; I'll contact those folks offline.
Generally, if you have a project called "foo", you'll need to name the
gem something like "foo-4.2.gem" for it to be deployed on the RubyForge
gem index. Of course, you can release a file with whatever name you
want on your project; this naming limitation only applies if you want
the gem indexed.
Questions and comments are welcome,
Yours,
Tom
Hi Tom
First of all I want to thank you and all the people who worked hard in
these days to fix this issue.
I've got some questions
What will happen to the gems which were already in the index and don't
respect the naming convention?
How the gem update command will work when the gems that don't respect
the naming convention will be upgraded to newer version with different
names?
thanks again
Paolo
Nope, it just means that you won't be able to release a gem who's
spec.full_name is greatly different than the file name.
Yours,
Tom
Thanks!
> What will happen to the gems which were already in the index
> and don't respect the naming convention?
There were about 20 of those; I'll contact the authors of them
individually.
> How the gem update command will work when the gems that don't
> respect the naming convention will be upgraded to newer
> version with different names?
Hm, I'm not sure. But there were very few of them, so hopefully it
won't be too much of a problem.
Yours,
Tom
> There's a fix in place for this now and gems are being deployed as
> usual. There were several gems whose spec.full_name settings
> prevented
> them from being deployed; I'll contact those folks offline.
Tom, given that rake's gem tasks are almost always creating the file
in question, any idea how or why the file name differs from the
specification? In the case of the poisoning it was obviously renamed
before pushed up to rubyforge... but the 20 others? (I'd hate to
think they were all hand packaged--ugh)
Here's an example: "fxruby-1.6.2-ruby1.8.5-mswin32.gem". Most of the
others are along the same lines... platform-specific renamings and that
kind of thing.
Yours,
tom
> Here's an example: "fxruby-1.6.2-ruby1.8.5-mswin32.gem". Most of the
> others are along the same lines... platform-specific renamings and that
> kind of thing.
For the record, that one was originally named
"fxruby-1.6.2-mswin32.gem", and then I renamed it before uploading it.
(It didn't come out of the Gem builder with that name.)
Yup, I'm not sure about what's a good way to name these more specific
gems...
Tom
It is very bad. This is the exact problem the package signing in
RubyGems was written to address.
If only people were using it...
> SonOfLilit
--
Paul Duncan <pa...@pablotron.org> pabs in #ruby-lang (OPN IRC)
http://www.pablotron.org/ OpenPGP Key ID: 0x82C29562
Well, maybe "was", since the problem "SonOfLilit" was talking about has
been fixed.
> This is the exact problem the package signing in
> RubyGems was written to address.
>
> If only people were using it...
Something like that would be good, and I encourage folks to read through
Paul's posts to rubygems-developers to get an idea of the possibilities
of gem signing.
Yours,
Tom