The existing answers are all quite good, but I think they mostly miss a couple points here & there.
All bugs should be documented and reported to whomever the decision maker for the project is on a reasonable timeline. It doesn't matter how big or small the project is, and it doesn't matter how big or small you think the bug is. At a minimum, any bug should be documented as a known issue at least internally.
Telling the team leader or manager that there is a critical error in
system which takes at least a month to fix (in best case scenario), or
stay silent and let the system fail on the first day (or possibly
damaging data and waste of money spent already)
As a 21-year-old intern, how can you be certain about your "best-case-scenario" assessment? Did you write all of the code that went into the bit with the critical error? Do you know it all inside and out? Do you have access to see all the source code? Is it not impossible that someone who knows better than you might see that this is actually just a simple typo somewhere and it takes a half-hour to fix?
Making time estimates is, in my opinion, one of the hardest things to do in the world of software development. I know I'm personally not very good at it at all (and I need to get better in a hurry--it's a very important skill for my current job). But this is a difficult task for many programmers. And it's not a skill that can be taught. It takes lots of experience, and it takes lots of familiarity with the team. Even if you had a lot of experience, your knowledge of the code base and your familiarity with the team isn't really going to be good enough to even come close to an accurate time estimate. If you're time estimate is correct, it's a lucky guess.
You're probably not really in a position to make an assessment on the timeline to fix the bug. The bigger the team you're on and the less experience you have with the team, the more true this statement is. And this is even more reason for my first point: document & report all bugs. Let the people running the project be in charge of making the decision on what to do with the bug.
I don't know how it can affect my position as an intern
If reporting bugs internally somehow negatively affects your position in the team (regardless of whether or not you're an intern), then this is not a team you want to be on.
There's really no reason to not report a bug internally. And there's certainly no reason to punish those who do report bugs internally. The only way bug reporters should be affected by reporting bugs is that those who are regularly accurately reporting bugs should be rewarded in some way.
So, if worst-case scenario, the company decides to terminate your internship because you internally reported a bug, then you've learned a very important lesson: Never work for that company.
It'd be one thing if you were externally reporting bugs outside the company. Don't do that. That's not your job. But there should be no problem with internally reporting bugs.
Most of my teammates are contractors and I am worried my decision will affect them as well.
There aren't many ways I can see your teammates being negatively impacted by your decision to report a bug other than ways they should be impacted.
- If your teammates were lying about/hiding/covering up this bug and that is discovered, they should appropriately be negatively effected.
- Depending on how easy it was for you to find the bug, any of your teammates who are responsible for testing may be slightly negatively impacted for not finding the bug (this probably isn't going to be severe unless that person is already on thin-ice).
In the end, I'm not sure how being contractors makes any special circumstance here, other than if you don't report the bug, they may be delivering a product with an undocumented critical error and that's going to make it more difficult for them to get contract work in the future probably.
But ultimately, the short answer is, no bug, no matter how big or how large or how long you suspect it will take to resolve, should go undocumented (internally, at a minimum).