fluent / fluentd

Fluentd: Unified Logging Layer (project under CNCF)
https://www.fluentd.org
Apache License 2.0
12.92k stars 1.34k forks source link

Replace WEBrick because it is no longer recommended for production use #4648

Open sparrowt opened 1 month ago

sparrowt commented 1 month ago

Describe the bug

Fluentd depends on webrick and uses it in quite a few places and thus although it's no longer included in ruby, it is required (e.g. the dockerfile installs ruby-webrick).

There have been a fair few CVEs reported for webrick in recent years, but more worrying is that in response to a recent security vulnerability report, one of the maintainers said "webrick is not for production".

If fluentd contines to rely on this, it feels risky (e.g. maybe future reports may not be patched so quickly / at all).

Perhaps it would be wise to migrate each usage away from webrick to a production-suitable replacement?

To Reproduce

Install fluentd - you will not be able to do this without also installing webrick.

Expected behavior

We should move away from production use of a package which the maintainers no longer recommend for production use.

Your Environment

- Fluentd version: all recent versions
- Package version: N/A
- Operating system: N/A
- Kernel version: N/A

Your Configuration

Any configuration.

Your Error Log

N/A

Additional context

No response

daipom commented 1 month ago

Thanks for your report. This is more likely enhancement request rather than bug report. I think we need more opinions and ideas.

Athishpranav2003 commented 1 month ago

@daipom i saw this alternative https://github.com/socketry/falcon

Not sure if there are other alternatives, need to research more

daipom commented 1 month ago

@Athishpranav2003 Thanks! So, Falcon is an option for us!

Sorry, since I'm unfamiliar with these libraries and don't have much time this month, I cannot say for sure about the direction now.

Athishpranav2003 commented 1 month ago

It's similar for me Maybe others active in Ruby community can give some comments on this @Watson1978 ?

Watson1978 commented 1 month ago

Fluentd has been used async-http and webrick for http server in in_http and RPC. I think it would be better to integrate them into one library (async-http, falcon or another).

dentarg commented 1 month ago

The most popular Ruby web server is Puma: https://github.com/puma/puma