๐จ [security][ruby] ์ ๋ฐ์ดํธ puma:4.3.3โ 4.3.6(ํจ์น)
๋ฌ์ฌ
๐จ ํ์ฌ ์์กด ํญ๋ชฉ์ ์๋ ค์ง ๋ณด์ ๊ฒฐํจ์ด ์์ต๋๋ค๐จ์ด ์์กด ํญ๋ชฉ ์ ๋ฐ์ดํธ๋ ์ด๋ฏธ ์๋ ค์ง ๋ณด์ ๋นํ์ ๋ณต๊ตฌํ์ต๋๋ค.์๋์ ์์ธํ ์ ๋ณด๋ฅผ ๋ณด๊ณ ๊ทธ ์ํฅ์ ์์ธํ ํ๊ฐํด ์ฃผ์ญ์์ค.์ฐ๋ฆฌ๋ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๊ทธ๊ฒ์ ํฉ๋ณํ๊ณ ๋ฐฐ์นํ ๊ฒ์ ๊ฑด์ํฉ๋๋ค.
๋ค์์ ์ ๋ฐ์ดํธ์ ๋ํด ์์์ผ ํ ๋ชจ๋ ์ ๋ณด์ ๋๋ค.์ด ์์ฒญ์ ํตํฉํ๊ธฐ ์ ์ ๋ณ๊ฒฝ๋ ๋ด์ฉ๊ณผ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ์์ธํ ๋ณด์ญ์์ค.
๋ญ๊ฐ ๋ฐ๋์์ด?
โณ๏ธ ํจ๋ง(4.3.3)โ 4.3.6)ยทํ๋งคยท๋ณ๊ฒฝ๊ธฐ๋ก
์์ ์๋ฌธ๐จ
๐จ Puma์์ ์ ์ก ์ฝ๋ฉ ํค๋๋ฅผ ํตํด HTTP ๋ฐ์
์ํฅ
By using an invalid transfer-encoding header, an attacker could
smuggle an HTTP response.ํ<unk>์ ๊น๋ค
The problem has been fixed in Puma 3.12.5 and Puma 4.3.4.
๐จ Puma์์ ์ ์ก ์ฝ๋ฉ ํค๋๋ฅผ ํตํด HTTP ๋ฐ์
์ํฅ
This is a similar but different vulnerability to the one patched in 3.12.5 and 4.3.4.
A client could smuggle a request through a proxy, causing the proxy to send a response
back to another unknown client.If the proxy uses persistent connections and the client adds another request in via HTTP
pipelining, the proxy may mistake it as the first request's body. Puma, however,
would see it as two requests, and when processing the second request, send back
a response that the proxy does not expect. If the proxy has reused the persistent
connection to Puma to send another request for a different client, the second response
from the first client will be sent to the second client.ํ<unk>์ ๊น๋ค
The problem has been fixed in Puma 3.12.6 and Puma 4.3.5.
๋ฆด๋ฆฌ์ฆ ๋ ธํธ
4.3.6
A quick fix for a build error on Mac OS and a JSON require fix for those using phased restart.
์ด๊ฒ ํ๋ฆฐ ๊ฒ ๊ฐ๋์?Please let us know.
์ธ์ฝ
See the full diff on Github . ์ ๋ฆด๋ฆฌ์ฆ์์๋ ๋ค์๊ณผ ๊ฐ์ 8๊ฐ์ง ์ฐจ์ด์ ์ด ์์ต๋๋ค.
v4.3.6
Merge pull request #2314 from venables/fix-include
Merge pull request #2269 from MSP-Greg/json-require
Bump version
Adjust test to match real world value
Reduce ambiguity of headers
Bump version
Better handle client input
Depfu ๋ถ๊ธฐ์ ์ปค๋ฐ์ ์ถ๊ฐํ์ง ์๋ ํ ์ด PR์ด ์ถฉ๋ํ์ง ์๋๋ก ์๋์ผ๋ก ์ ์ง๋ฉ๋๋ค.
@depfu rebase
์ฃผ์์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ํฐ์นํ ์๋ ์์ต๋๋ค.๋ชจ๋ Depfu ์ฃผ์ ๋ช ๋ น
- @โdepfu rebase
- Rebases against your default branch and redoes this update
- @โdepfu recreate
- Recreates this PR, overwriting any edits that you've made to it
- @โdepfu merge
- Merges this PR once your tests are passing and conflicts are resolved
- @โdepfu close
- Closes this PR and deletes the branch
- @โdepfu reopen
- Restores the branch and reopens this PR (if it's closed)
- @โdepfu pause
- Ignores all future updates for this dependency and closes this PR
- @โdepfu pause [minor|major]
- Ignores all future minor/major updates for this dependency and closes this PR
- @โdepfu resume
- Future versions of this dependency will create PRs again (leaves this PR as is)
ํ ๋ก #1
#231์ ์ ๋ฆฌํฉ๋๋ค.Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐จ [security][ruby] ์ ๋ฐ์ดํธ puma:4.3.3โ 4.3.6(ํจ์น)), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://github.com/bumi/mshauri/issues/213ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค