반응형

버그 발생

  • 2009 7 13일 월요일, Bank of America가 발행한 VISA 직불 카드(prepaid debit card)로 담배를 산 미국 뉴햄프셔의 한 남자가 $23,148,855,308,184,500가 청구된 것을 온라인 은행 계정에서 확인함. 카드사는 이 사람에게 $15의 초과 인출비(overdraft fee)도 부과함
  • 테네시, 텍사스, 뉴욕 등에서도 식당이나 주유소에서 VISA 카드를 사용한 사람들이 동일한 17-자리수 청구액($23,148,855,308,184,500)이 부과된 것을 발견함

[약 $23 quadrillion이 청구된 은행 계정 명세서]

 

원인 추정

  • VISA 측은 7 14일 화요일 서면 성명서에서 “Visa Debit Processing Services에서의 일시적인 프로그래밍 에러로 인해 Visa 선불 계정(prepaid accounts)에 일부 트랜잭션이 부정확하게 게시되었으며, 13,000건 미만의 선불 트랙잭션(prepaid transactions)이 영향을 받았다고 발표함
  • VISA가 어떤 프로그래밍 에러인지를 정확히 밝히지는 않았지만 전문가들은 부과된 금액에 비추어 볼 때 <empty field> + binhex 문제일 것으로 추정함
    i)
    금액을 센트로 전환 23,148,855,308,184,500.00 * 100 = 2,314,885,530,818,450,000 cents
    ii)
    이 숫자를 hex로 전환하면 20 20 20 20 20 20 12 50
    iii)
    hex 20(처음 6 바이트)space를 위한 코드임. 8-byte blank field에서 바이너리 0(binary zero)이 있어야 할 곳에 대신 spaces가 채워진 것으로 보임. , 원래 의도한 금액은 00 00 00 00 00 00 12 50 (hex 1250, dec 4688)으로 $46.88일 것으로 추정됨
  • 하지만 이 해석도 어떻게 다양한 가격의 물품을 구입한 사람들이 동일하게 $23,148,855,308,184,500을 청구 받았는지는 설명하지 못함. 값이 실수(real number)로 전환될 때 처음 15자리(digits)만 포함되고 나머지는 0으로 전환되는 라운딩 에러의 결과일 것으로 추정

 

[2009년 7월 15일자 WMUR-TV의 뉴스]

반응형

+ Recent posts