
CVE-2022-37177 - HireVue-Broken-Or-Risky-Cryptographic-Algorithm
HireVue가 인터뷰를 위해 제공하는 인터뷰 초대 링크를 방문하면, 녹화되고 시간이 제한된 인터뷰 프로세스를 시작하기 전에 약관에 동의하는 약관 페이지로 이동하게 됩니다. 이 초기 HTTP 응답에는 인터뷰 중에 질문될 질문들이 rail fence cipher로 인코딩되어 포함되어 있습니다. 이는 쉽게 복호화할 수 있으므로 실제로 프로세스를 시작하기 전에 모든 인터뷰 질문에 접근할 수 있습니다. 약관에 동의하지 않으면 인터뷰가 시작되지 않으므로, 인터뷰를 시작하기로 동의할 때까지 링크를 방문했다가 떠나기를 원하는 만큼 반복할 수 있습니다. HireVue의 고객들은 인터뷰가 시작되기 전에 인터뷰 질문이 알려질 것이라고 기대하지 않으며, rail fence cipher를 사용하여 질문을 숨기려는 시도가 있기는 하지만 이는 취약한 형태의 암호화입니다.
또한 이 HTTP 응답에서 질문 수, 질문당 최대 답변 시간(초), 가능한 시도 횟수, 녹화 시작 전 준비 시간 등과 같은 다른 정보도 평문으로 수집할 수 있습니다.
초기 응답은 hiring-org-subdomain.hirevue.com/interviews/interview-ID에서 옵니다. JSON 형식으로 암호화된 질문이 포함된 questions라는 섹션을 찾아야 합니다. 질문은 text 필드에 있습니다. 아래 HTTP 응답의 일부와 같은 형태입니다.
...
"questions": [
{
"id": 123456,
"type": "video",
"text": "hsi htteqetoswl oklk hnecytduigari ec ihr Z25Ti swa h usin illo iewe nrpe sn alfnecpe.(..)",
"maxDuration": 180,
"isRatable": true,
"minDuration": 10,
"prepTimeSeconds": 120,
"disableCopyPaste": false,
"secondsElapsed": 0,
"isAnswered": false,
"answer": null,
"attemptsAvailable": 3
},
{
"id": 654321,
"type": "video",
"text": "hsi htteqetoswl oklk hnecytduigari ec ihr digsm xr ethr o hsoe(..)Ti swa h usin illo iewe nrpe sn alfnecpe.Adn oeetatx eefrti n G19",
"maxDuration": 180,
"isRatable": true,
"minDuration": 10,
"prepTimeSeconds": 120,
"disableCopyPaste": false,
"secondsElapsed": 0,
"isAnswered": false,
...
질문이 포함된 text 부분을 복호화하려면 https://www.boxentriq.com/code-breaking/rail-fence-cipher 를 사용할 수 있습니다. Rails를 2로, Offset을 0으로 설정한 다음 텍스트를 붙여넣고 복호화하면 됩니다. 시작 부분의 "text": 부분이나 끝의 쉼표(JSON 형식의 일부)는 포함하지 않아야 하며, 위 예시의 끝에 있는 닫는 따옴표와 같은 일부 문자를 끝에서 삭제해야 할 수도 있습니다.