Likes Likes:  0
Resultaten 1 tot 5 van de 5
Geen
  1. #1
    Paul J Docherty
    Portcullis Security Advisory 05-011 ACPI 1.6 BIOS
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Portcullis Security Advisory 05-011 ACPI 1.6 BIOS

    Portcullis Security Advisory

    Vulnerable System:=20

    This vulnerability affects any workstation running the ACPI 1.6 BIOS
    implementation.=20

    Vulnerability Title:=20

    BIOS code logic error=20

    Vulnerability discovery and development:=20

    The Portcullis R&D team discovered this vulnerability. Whilst assessing
    a secured (software access control) laptop environment the team
    discovered it was possible to cause any system running the vulnerable
    version of the BIOS to become unstable and no longer boot. Once the
    coding error was known it could be exploited to cause a near permanent
    Denial of Service attack.=20

    Affected systems:=20

    The fault was initially found on a Toshiba Satellite Pro A60 running the
    ACPI BIOS version 1.60. This is a fundamental error that could be
    exploited in any workstation based on the 1.60 version of the ACPI BIOS.
    All hard disks, including those encrypted by software or hardware, will
    be affected. Note that later versions of the ACPI (v1.7 and v1.8), also
    appear to contain the same coding error however, Portcullis have not
    tested these versions.=20

    Details:

    There is a programming error in the BIOS when the Master Boot Record
    (MBR) is searched for the bootable disk partition. The error in the BIOS
    code results in only the first slot in the MBR partition table being
    tested for the active partition. Where the active partition is not
    described in the first slot of the MBR table, the BIOS ignores the
    remaining slots and searches other devices for a boot mechanism, and in
    consequence fails to start the Operating System.=20

    The BIOS seeks to validate the contents of the MBR and the boot sector
    in the active partition to achieve confidence in the integrity of the
    boot mechanism. At various points on the start-up sequence the BIOS
    reads the MBR from disk and tests the data therein. In at least one
    case, the BIOS sets out to test all 4 entries in the MBR partition table
    but due to treating an absolute pointer as one relative to the start of
    the MBR, it drops out of the loop after the first iteration. Slots 2, 3
    and 4 are never examined and the active partition not found.
    Specifically, the 512 byte MBR end-of-table is tested by comparing the
    pointer to see if it has reached end-of-table at 510 bytes.
    Unfortunately, in the ACPI version the pointer is set to MBR-start plus
    start-of-table within MBR. Therefore, the pointer begins with a value
    larger than the size of the MBR. The result is that the first slot
    fails, when testing for the active partition byte, the test will show an
    end-of-table result: the subsequent slots are ignored.

    An example of the problem is shown when the MBR is read into boot
    address 0000:7C00h and then tested for an active partition.

    xor bx, bx ;zero BX

    mov es, bx

    mov bx, 7C00h ;buffer address ES:BX set to 0000:7C00h

    mov cx, 1 ;set sector and cylinder value

    xor dh, dh ;and head value to read cylinder 0, head 0, sector 1

    mov dl, 80h ;set first hard disk drive

    mov ax, 0201h ;set read 1 sector

    int 13h ;call BIOS routine to read MBR and assume success

    add bx, 446 ;ES:BX point to start of partition table in MBR (BX =3D
    7DBEh)

    NextSl

    cmp es:[bx], 80h ;is this slot bootable?

    je ActiveOk ;yes, drop out of loop

    add bx, 16 ;increment by length of slot in table=20
    (BX becomes 7C00h+446+16)

    cmp bx, 510 ;end of slot table reached? error!=20
    should be cmp bx, 7C00h + 510

    jb NextSlot ;no, look at next entry - branch never taken

    stc ;set no active partition found status

    ret

    ActiveOk:

    clc ;set active partition found status

    ret

    Impact:

    The system will not boot. Standard analysis tools will not identify the
    contents of the MBR partition as invalid. Unless the help-desk engineer
    is aware of this BIOS error, he/she will be unable to diagnose the
    fault. Therefore, the impact is denial of service: the system will not
    boot and yet there is nothing wrong with the contents of the hard disk.

    Exploit:

    The error in the BIOS code means that any workstation using this version
    of the BIOS, can be configured such that the bootable partition is
    defined below the first slot in the MBR partition table and will not
    boot. An attack at any time during an operating session can leave the
    workstation subsequently unable to reboot. The nature of the fault means
    that it is very difficult to identify and may leave the workstation
    inoperable for an extended period of time.

    Vendor Notified:

    Toshiba were notified initially by email, as no response was received
    this was followed up by telephone on Friday 4-Feb-2005 and again on
    Wednesday 23-Feb-2005.

    Vendor Response:

    The A60 laptop works with their supplied configuration. Fault not
    recognised. Reference supplied by Toshiba is 1-585 92244. When the fault
    was reported again on 23-Feb-2005 a new fault reference was supplied
    1-165 162202 but no technical response was provided by Toshiba.

    Workaround/Fix

    Either, the BIOS code must be corrected by the manufacturer, or a
    monitoring device installed to detect any re-configuration that would
    exploit the vulnerability. Validating and correcting the contents of the
    MBR at system shutdown is a minimum requirement in these circumstances.=20

    Copyright:=20

    Copyright (c) Portcullis Computer Security Limited 2005. All rights
    reserved worldwide.



    ************************************************** ***********
    The information in this email is confidential and may be
    legally privileged. It is intended solely for the addressee.
    Any opinions expressed are those of the individual and do not
    represent the opinion of the organisation.=20
    Access to this email by persons other than the intended
    recipient is strictly prohibited.
    If you are not the intended recipient, any disclosure, copying,
    distribution or other action taken or omitted to be taken in
    reliance on it, is prohibited and may be unlawful.=20
    When addressed to our clients any opinions or advice contained
    in this email is subject to the terms and conditions expressed
    in the applicable Portcullis Computer Security Limited terms
    of business.
    ************************************************** ************


  2. #2
    Paul J Docherty
    Portcullis Security Advisory 05-011 ACPI 1.6 BIOS
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    RE: Portcullis Security Advisory 05-011 ACPI 1.6 BIOS

    Hi Kurt,

    Fdisk /MBR only replaces the boot code within the sector, it does not
    change in any way the Partition Information Block (PIB). Where the error
    lies is in the placement of the active bootable partition within the
    PIB, if it is not the first entry the bug appears. This is why standard
    diag tools fail, they read the entries in the PIB, as long as one is
    marked active and bootable and all the entries correspond logically to
    the HD's characteristics they say all is OK. =20

    So what you could/should do is boot from A N Other media, use a hex
    editor to view the MBR and ensure that the active partition is the first
    entry, (ensure all other entries are replaced and intact) and reboot
    from the HD.=20

    Cheers.

    PJD=20

    -----Original Message-----
    From: Kurt Seifried [mailto:bt@seifried.org]=20
    Sent: Wednesday, March 30, 2005 6:36 AM
    To: Paul J Docherty; bugs; Bugtraq; secunia
    Subject: Re: Portcullis Security Advisory 05-011 ACPI 1.6 BIOS

    Does booting from a dos floppy and using "fdisk /mbr" work (or other
    methods=20
    zeroing out the MBR).


    Kurt Seifried, kurt@seifried.org
    A15B BEE5 B391 B9AD B0EF
    AEB0 AD63 0B4E AD56 E574
    http://seifried.org/security/

    ----- Original Message -----=20
    From: "Paul J Docherty" <PJD@portcullis-security.com>
    To: "bugs" <bugs@securitytracker.com>; "Bugtraq"=20
    <bugtraq@securityfocus.com>; "secunia" <vuln@secunia.com>
    Sent: Tuesday, March 29, 2005 5:54 AM
    Subject: Portcullis Security Advisory 05-011 ACPI 1.6 BIOS


    Portcullis Security Advisory

    Vulnerable System:

    This vulnerability affects any workstation running the ACPI 1.6 BIOS
    implementation.

    Vulnerability Title:

    BIOS code logic error

    Vulnerability discovery and development:

    The Portcullis R&D team discovered this vulnerability. Whilst assessing
    a secured (software access control) laptop environment the team
    discovered it was possible to cause any system running the vulnerable
    version of the BIOS to become unstable and no longer boot. Once the
    coding error was known it could be exploited to cause a near permanent
    Denial of Service attack.

    Affected systems:

    The fault was initially found on a Toshiba Satellite Pro A60 running the
    ACPI BIOS version 1.60. This is a fundamental error that could be
    exploited in any workstation based on the 1.60 version of the ACPI BIOS.
    All hard disks, including those encrypted by software or hardware, will
    be affected. Note that later versions of the ACPI (v1.7 and v1.8), also
    appear to contain the same coding error however, Portcullis have not
    tested these versions.

    Details:

    There is a programming error in the BIOS when the Master Boot Record
    (MBR) is searched for the bootable disk partition. The error in the BIOS
    code results in only the first slot in the MBR partition table being
    tested for the active partition. Where the active partition is not
    described in the first slot of the MBR table, the BIOS ignores the
    remaining slots and searches other devices for a boot mechanism, and in
    consequence fails to start the Operating System.

    The BIOS seeks to validate the contents of the MBR and the boot sector
    in the active partition to achieve confidence in the integrity of the
    boot mechanism. At various points on the start-up sequence the BIOS
    reads the MBR from disk and tests the data therein. In at least one
    case, the BIOS sets out to test all 4 entries in the MBR partition table
    but due to treating an absolute pointer as one relative to the start of
    the MBR, it drops out of the loop after the first iteration. Slots 2, 3
    and 4 are never examined and the active partition not found.
    Specifically, the 512 byte MBR end-of-table is tested by comparing the
    pointer to see if it has reached end-of-table at 510 bytes.
    Unfortunately, in the ACPI version the pointer is set to MBR-start plus
    start-of-table within MBR. Therefore, the pointer begins with a value
    larger than the size of the MBR. The result is that the first slot
    fails, when testing for the active partition byte, the test will show an
    end-of-table result: the subsequent slots are ignored.

    An example of the problem is shown when the MBR is read into boot
    address 0000:7C00h and then tested for an active partition.

    xor bx, bx ;zero BX

    mov es, bx

    mov bx, 7C00h ;buffer address ES:BX set to 0000:7C00h

    mov cx, 1 ;set sector and cylinder value

    xor dh, dh ;and head value to read cylinder 0, head 0, sector 1

    mov dl, 80h ;set first hard disk drive

    mov ax, 0201h ;set read 1 sector

    int 13h ;call BIOS routine to read MBR and assume success

    add bx, 446 ;ES:BX point to start of partition table in MBR (BX =3D
    7DBEh)

    NextSl

    cmp es:[bx], 80h ;is this slot bootable?

    je ActiveOk ;yes, drop out of loop

    add bx, 16 ;increment by length of slot in table
    (BX becomes 7C00h+446+16)

    cmp bx, 510 ;end of slot table reached? error!
    should be cmp bx, 7C00h + 510

    jb NextSlot ;no, look at next entry - branch never taken

    stc ;set no active partition found status

    ret

    ActiveOk:

    clc ;set active partition found status

    ret

    Impact:

    The system will not boot. Standard analysis tools will not identify the
    contents of the MBR partition as invalid. Unless the help-desk engineer
    is aware of this BIOS error, he/she will be unable to diagnose the
    fault. Therefore, the impact is denial of service: the system will not
    boot and yet there is nothing wrong with the contents of the hard disk.

    Exploit:

    The error in the BIOS code means that any workstation using this version
    of the BIOS, can be configured such that the bootable partition is
    defined below the first slot in the MBR partition table and will not
    boot. An attack at any time during an operating session can leave the
    workstation subsequently unable to reboot. The nature of the fault means
    that it is very difficult to identify and may leave the workstation
    inoperable for an extended period of time.

    Vendor Notified:

    Toshiba were notified initially by email, as no response was received
    this was followed up by telephone on Friday 4-Feb-2005 and again on
    Wednesday 23-Feb-2005.

    Vendor Response:

    The A60 laptop works with their supplied configuration. Fault not
    recognised. Reference supplied by Toshiba is 1-585 92244. When the fault
    was reported again on 23-Feb-2005 a new fault reference was supplied
    1-165 162202 but no technical response was provided by Toshiba.

    Workaround/Fix

    Either, the BIOS code must be corrected by the manufacturer, or a
    monitoring device installed to detect any re-configuration that would
    exploit the vulnerability. Validating and correcting the contents of the
    MBR at system shutdown is a minimum requirement in these circumstances.

    Copyright:

    Copyright (c) Portcullis Computer Security Limited 2005. All rights
    reserved worldwide.



    ************************************************** ***********
    The information in this email is confidential and may be
    legally privileged. It is intended solely for the addressee.
    Any opinions expressed are those of the individual and do not
    represent the opinion of the organisation.
    Access to this email by persons other than the intended
    recipient is strictly prohibited.
    If you are not the intended recipient, any disclosure, copying,
    distribution or other action taken or omitted to be taken in
    reliance on it, is prohibited and may be unlawful.
    When addressed to our clients any opinions or advice contained
    in this email is subject to the terms and conditions expressed
    in the applicable Portcullis Computer Security Limited terms
    of business.
    ************************************************** ************




    =20

  3. #3
    Kurt Seifried
    Portcullis Security Advisory 05-011 ACPI 1.6 BIOS
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Portcullis Security Advisory 05-011 ACPI 1.6 BIOS

    Does booting from a dos floppy and using "fdisk /mbr" work (or other methods
    zeroing out the MBR).


    Kurt Seifried, kurt@seifried.org
    A15B BEE5 B391 B9AD B0EF
    AEB0 AD63 0B4E AD56 E574
    http://seifried.org/security/

    ----- Original Message -----
    From: "Paul J Docherty" <PJD@portcullis-security.com>
    To: "bugs" <bugs@securitytracker.com>; "Bugtraq"
    <bugtraq@securityfocus.com>; "secunia" <vuln@secunia.com>
    Sent: Tuesday, March 29, 2005 5:54 AM
    Subject: Portcullis Security Advisory 05-011 ACPI 1.6 BIOS


    Portcullis Security Advisory

    Vulnerable System:

    This vulnerability affects any workstation running the ACPI 1.6 BIOS
    implementation.

    Vulnerability Title:

    BIOS code logic error

    Vulnerability discovery and development:

    The Portcullis R&D team discovered this vulnerability. Whilst assessing
    a secured (software access control) laptop environment the team
    discovered it was possible to cause any system running the vulnerable
    version of the BIOS to become unstable and no longer boot. Once the
    coding error was known it could be exploited to cause a near permanent
    Denial of Service attack.

    Affected systems:

    The fault was initially found on a Toshiba Satellite Pro A60 running the
    ACPI BIOS version 1.60. This is a fundamental error that could be
    exploited in any workstation based on the 1.60 version of the ACPI BIOS.
    All hard disks, including those encrypted by software or hardware, will
    be affected. Note that later versions of the ACPI (v1.7 and v1.8), also
    appear to contain the same coding error however, Portcullis have not
    tested these versions.

    Details:

    There is a programming error in the BIOS when the Master Boot Record
    (MBR) is searched for the bootable disk partition. The error in the BIOS
    code results in only the first slot in the MBR partition table being
    tested for the active partition. Where the active partition is not
    described in the first slot of the MBR table, the BIOS ignores the
    remaining slots and searches other devices for a boot mechanism, and in
    consequence fails to start the Operating System.

    The BIOS seeks to validate the contents of the MBR and the boot sector
    in the active partition to achieve confidence in the integrity of the
    boot mechanism. At various points on the start-up sequence the BIOS
    reads the MBR from disk and tests the data therein. In at least one
    case, the BIOS sets out to test all 4 entries in the MBR partition table
    but due to treating an absolute pointer as one relative to the start of
    the MBR, it drops out of the loop after the first iteration. Slots 2, 3
    and 4 are never examined and the active partition not found.
    Specifically, the 512 byte MBR end-of-table is tested by comparing the
    pointer to see if it has reached end-of-table at 510 bytes.
    Unfortunately, in the ACPI version the pointer is set to MBR-start plus
    start-of-table within MBR. Therefore, the pointer begins with a value
    larger than the size of the MBR. The result is that the first slot
    fails, when testing for the active partition byte, the test will show an
    end-of-table result: the subsequent slots are ignored.

    An example of the problem is shown when the MBR is read into boot
    address 0000:7C00h and then tested for an active partition.

    xor bx, bx ;zero BX

    mov es, bx

    mov bx, 7C00h ;buffer address ES:BX set to 0000:7C00h

    mov cx, 1 ;set sector and cylinder value

    xor dh, dh ;and head value to read cylinder 0, head 0, sector 1

    mov dl, 80h ;set first hard disk drive

    mov ax, 0201h ;set read 1 sector

    int 13h ;call BIOS routine to read MBR and assume success

    add bx, 446 ;ES:BX point to start of partition table in MBR (BX =
    7DBEh)

    NextSl

    cmp es:[bx], 80h ;is this slot bootable?

    je ActiveOk ;yes, drop out of loop

    add bx, 16 ;increment by length of slot in table
    (BX becomes 7C00h+446+16)

    cmp bx, 510 ;end of slot table reached? error!
    should be cmp bx, 7C00h + 510

    jb NextSlot ;no, look at next entry - branch never taken

    stc ;set no active partition found status

    ret

    ActiveOk:

    clc ;set active partition found status

    ret

    Impact:

    The system will not boot. Standard analysis tools will not identify the
    contents of the MBR partition as invalid. Unless the help-desk engineer
    is aware of this BIOS error, he/she will be unable to diagnose the
    fault. Therefore, the impact is denial of service: the system will not
    boot and yet there is nothing wrong with the contents of the hard disk.

    Exploit:

    The error in the BIOS code means that any workstation using this version
    of the BIOS, can be configured such that the bootable partition is
    defined below the first slot in the MBR partition table and will not
    boot. An attack at any time during an operating session can leave the
    workstation subsequently unable to reboot. The nature of the fault means
    that it is very difficult to identify and may leave the workstation
    inoperable for an extended period of time.

    Vendor Notified:

    Toshiba were notified initially by email, as no response was received
    this was followed up by telephone on Friday 4-Feb-2005 and again on
    Wednesday 23-Feb-2005.

    Vendor Response:

    The A60 laptop works with their supplied configuration. Fault not
    recognised. Reference supplied by Toshiba is 1-585 92244. When the fault
    was reported again on 23-Feb-2005 a new fault reference was supplied
    1-165 162202 but no technical response was provided by Toshiba.

    Workaround/Fix

    Either, the BIOS code must be corrected by the manufacturer, or a
    monitoring device installed to detect any re-configuration that would
    exploit the vulnerability. Validating and correcting the contents of the
    MBR at system shutdown is a minimum requirement in these circumstances.

    Copyright:

    Copyright (c) Portcullis Computer Security Limited 2005. All rights
    reserved worldwide.



    ************************************************** ***********
    The information in this email is confidential and may be
    legally privileged. It is intended solely for the addressee.
    Any opinions expressed are those of the individual and do not
    represent the opinion of the organisation.
    Access to this email by persons other than the intended
    recipient is strictly prohibited.
    If you are not the intended recipient, any disclosure, copying,
    distribution or other action taken or omitted to be taken in
    reliance on it, is prohibited and may be unlawful.
    When addressed to our clients any opinions or advice contained
    in this email is subject to the terms and conditions expressed
    in the applicable Portcullis Computer Security Limited terms
    of business.
    ************************************************** ************



  4. #4
    Chris Paget
    Portcullis Security Advisory 05-011 ACPI 1.6 BIOS
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Portcullis Security Advisory 05-011 ACPI 1.6 BIOS

    Maybe I'm missing something, but I fail to see how this can be classed
    as a vulnerability? In order to corrupt the MBR in this way you would
    need privileged access to the machine (since you will be writing to raw
    sectors of the hard drive); if you have this level of access you can DoS
    the machine in any number of ways:
    1) Flash the BIOS with /dev/random.
    2) Format the hard drive
    3) Delete the partition table
    4) Disable the "active" flag on the primary partition
    5) Modify the CPU microcode
    ....and the list goes on. This is to mention nothing of software-based
    attacks; an OS can be killed in many, many ways if you can write to any
    of the OS files.

    If you're after a subtle attack, I doubt many people would even think to
    check whether their primary partition was still active. If you're after
    an effective attack, flashing the BIOS is non-recoverable on most
    systems (requiring a new motherboard).

    Any of these require the same level of access to the system, and produce
    the same effects. How is your "attack" any different?

    Chris

    --
    Chris Paget
    ivegotta@tombom.co.uk



    Paul J Docherty wrote:
    > Portcullis Security Advisory
    >
    > Vulnerable System:
    >
    > This vulnerability affects any workstation running the ACPI 1.6 BIOS
    > implementation.
    >
    > Vulnerability Title:
    >
    > BIOS code logic error
    >
    > Vulnerability discovery and development:
    >
    > The Portcullis R&D team discovered this vulnerability. Whilst assessing
    > a secured (software access control) laptop environment the team
    > discovered it was possible to cause any system running the vulnerable
    > version of the BIOS to become unstable and no longer boot. Once the
    > coding error was known it could be exploited to cause a near permanent
    > Denial of Service attack.
    >
    > Affected systems:
    >
    > The fault was initially found on a Toshiba Satellite Pro A60 running the
    > ACPI BIOS version 1.60. This is a fundamental error that could be
    > exploited in any workstation based on the 1.60 version of the ACPI BIOS.
    > All hard disks, including those encrypted by software or hardware, will
    > be affected. Note that later versions of the ACPI (v1.7 and v1.8), also
    > appear to contain the same coding error however, Portcullis have not
    > tested these versions.
    >
    > Details:
    >
    > There is a programming error in the BIOS when the Master Boot Record
    > (MBR) is searched for the bootable disk partition. The error in the BIOS
    > code results in only the first slot in the MBR partition table being
    > tested for the active partition. Where the active partition is not
    > described in the first slot of the MBR table, the BIOS ignores the
    > remaining slots and searches other devices for a boot mechanism, and in
    > consequence fails to start the Operating System.
    >
    > The BIOS seeks to validate the contents of the MBR and the boot sector
    > in the active partition to achieve confidence in the integrity of the
    > boot mechanism. At various points on the start-up sequence the BIOS
    > reads the MBR from disk and tests the data therein. In at least one
    > case, the BIOS sets out to test all 4 entries in the MBR partition table
    > but due to treating an absolute pointer as one relative to the start of
    > the MBR, it drops out of the loop after the first iteration. Slots 2, 3
    > and 4 are never examined and the active partition not found.
    > Specifically, the 512 byte MBR end-of-table is tested by comparing the
    > pointer to see if it has reached end-of-table at 510 bytes.
    > Unfortunately, in the ACPI version the pointer is set to MBR-start plus
    > start-of-table within MBR. Therefore, the pointer begins with a value
    > larger than the size of the MBR. The result is that the first slot
    > fails, when testing for the active partition byte, the test will show an
    > end-of-table result: the subsequent slots are ignored.
    >
    > An example of the problem is shown when the MBR is read into boot
    > address 0000:7C00h and then tested for an active partition.
    >
    > xor bx, bx ;zero BX
    >
    > mov es, bx
    >
    > mov bx, 7C00h ;buffer address ES:BX set to 0000:7C00h
    >
    > mov cx, 1 ;set sector and cylinder value
    >
    > xor dh, dh ;and head value to read cylinder 0, head 0, sector 1
    >
    > mov dl, 80h ;set first hard disk drive
    >
    > mov ax, 0201h ;set read 1 sector
    >
    > int 13h ;call BIOS routine to read MBR and assume success
    >
    > add bx, 446 ;ES:BX point to start of partition table in MBR (BX =
    > 7DBEh)
    >
    > NextSl
    >
    > cmp es:[bx], 80h ;is this slot bootable?
    >
    > je ActiveOk ;yes, drop out of loop
    >
    > add bx, 16 ;increment by length of slot in table
    > (BX becomes 7C00h+446+16)
    >
    > cmp bx, 510 ;end of slot table reached? error!
    > should be cmp bx, 7C00h + 510
    >
    > jb NextSlot ;no, look at next entry - branch never taken
    >
    > stc ;set no active partition found status
    >
    > ret
    >
    > ActiveOk:
    >
    > clc ;set active partition found status
    >
    > ret
    >
    > Impact:
    >
    > The system will not boot. Standard analysis tools will not identify the
    > contents of the MBR partition as invalid. Unless the help-desk engineer
    > is aware of this BIOS error, he/she will be unable to diagnose the
    > fault. Therefore, the impact is denial of service: the system will not
    > boot and yet there is nothing wrong with the contents of the hard disk.
    >
    > Exploit:
    >
    > The error in the BIOS code means that any workstation using this version
    > of the BIOS, can be configured such that the bootable partition is
    > defined below the first slot in the MBR partition table and will not
    > boot. An attack at any time during an operating session can leave the
    > workstation subsequently unable to reboot. The nature of the fault means
    > that it is very difficult to identify and may leave the workstation
    > inoperable for an extended period of time.
    >
    > Vendor Notified:
    >
    > Toshiba were notified initially by email, as no response was received
    > this was followed up by telephone on Friday 4-Feb-2005 and again on
    > Wednesday 23-Feb-2005.
    >
    > Vendor Response:
    >
    > The A60 laptop works with their supplied configuration. Fault not
    > recognised. Reference supplied by Toshiba is 1-585 92244. When the fault
    > was reported again on 23-Feb-2005 a new fault reference was supplied
    > 1-165 162202 but no technical response was provided by Toshiba.
    >
    > Workaround/Fix
    >
    > Either, the BIOS code must be corrected by the manufacturer, or a
    > monitoring device installed to detect any re-configuration that would
    > exploit the vulnerability. Validating and correcting the contents of the
    > MBR at system shutdown is a minimum requirement in these circumstances.
    >
    > Copyright:
    >
    > Copyright (c) Portcullis Computer Security Limited 2005. All rights
    > reserved worldwide.
    >
    >
    >
    > ************************************************** ***********
    > The information in this email is confidential and may be
    > legally privileged. It is intended solely for the addressee.
    > Any opinions expressed are those of the individual and do not
    > represent the opinion of the organisation.
    > Access to this email by persons other than the intended
    > recipient is strictly prohibited.
    > If you are not the intended recipient, any disclosure, copying,
    > distribution or other action taken or omitted to be taken in
    > reliance on it, is prohibited and may be unlawful.
    > When addressed to our clients any opinions or advice contained
    > in this email is subject to the terms and conditions expressed
    > in the applicable Portcullis Computer Security Limited terms
    > of business.
    > ************************************************** ************
    >
    >


  5. #5
    Paul J Docherty
    Portcullis Security Advisory 05-011 ACPI 1.6 BIOS
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    RE: Portcullis Security Advisory 05-011 ACPI 1.6 BIOS

    Perhaps you are! The MBR is not being corrupted, it is intact and
    perfectly in order (if an MBR RFC existed it would be fully compliant).
    Whilst I agree, with privileged access you can DoS a system in many
    ways, all the ones you note would be obvious to a user and can be
    recovered from using common sense and some diagnostics for example
    re-flash or replace BIOS (does work on many systems) re-install an OS,
    re-partition etc etc. Also, local access to a system does not
    necessarily mean you have privileged access, just because your in the
    same room as a computer doesn't mean you can access it as an Admin/root.

    The issue described here requires the USER to do the things you have
    mentioned to recover hence destroy their own data, re-partition the disk
    etc. Subtly different, but different.

    Further, this issue was used to make a hard disk encryption (sector
    based) system fail-over requiring an administrator to uninstall it and
    hence decrypt the data.

    As they say, "One man's bread is another man's poison."

    Paul=20


    -----Original Message-----
    From: Chris Paget [mailto:ivegotta@tombom.co.uk]=20
    Sent: Thursday, March 31, 2005 10:43 AM
    To: Paul J Docherty
    Cc: bugs; Bugtraq; secunia
    Subject: Re: Portcullis Security Advisory 05-011 ACPI 1.6 BIOS

    Maybe I'm missing something, but I fail to see how this can be classed=20
    as a vulnerability? In order to corrupt the MBR in this way you would=20
    need privileged access to the machine (since you will be writing to raw=20
    sectors of the hard drive); if you have this level of access you can DoS

    the machine in any number of ways:
    1) Flash the BIOS with /dev/random.
    2) Format the hard drive
    3) Delete the partition table
    4) Disable the "active" flag on the primary partition
    5) Modify the CPU microcode
    ....and the list goes on. This is to mention nothing of software-based=20
    attacks; an OS can be killed in many, many ways if you can write to any=20
    of the OS files.

    If you're after a subtle attack, I doubt many people would even think to

    check whether their primary partition was still active. If you're after

    an effective attack, flashing the BIOS is non-recoverable on most=20
    systems (requiring a new motherboard).

    Any of these require the same level of access to the system, and produce

    the same effects. How is your "attack" any different?

    Chris

    --=20
    Chris Paget
    ivegotta@tombom.co.uk



    Paul J Docherty wrote:
    > Portcullis Security Advisory
    >=20
    > Vulnerable System:=20
    >=20
    > This vulnerability affects any workstation running the ACPI 1.6 BIOS
    > implementation.=20
    >=20
    > Vulnerability Title:=20
    >=20
    > BIOS code logic error=20
    >=20
    > Vulnerability discovery and development:=20
    >=20
    > The Portcullis R&D team discovered this vulnerability. Whilst

    assessing
    > a secured (software access control) laptop environment the team
    > discovered it was possible to cause any system running the vulnerable
    > version of the BIOS to become unstable and no longer boot. Once the
    > coding error was known it could be exploited to cause a near permanent
    > Denial of Service attack.=20
    >=20
    > Affected systems:=20
    >=20
    > The fault was initially found on a Toshiba Satellite Pro A60 running

    the
    > ACPI BIOS version 1.60. This is a fundamental error that could be
    > exploited in any workstation based on the 1.60 version of the ACPI

    BIOS.
    > All hard disks, including those encrypted by software or hardware,

    will
    > be affected. Note that later versions of the ACPI (v1.7 and v1.8),

    also
    > appear to contain the same coding error however, Portcullis have not
    > tested these versions.=20
    >=20
    > Details:
    >=20
    > There is a programming error in the BIOS when the Master Boot Record
    > (MBR) is searched for the bootable disk partition. The error in the

    BIOS
    > code results in only the first slot in the MBR partition table being
    > tested for the active partition. Where the active partition is not
    > described in the first slot of the MBR table, the BIOS ignores the
    > remaining slots and searches other devices for a boot mechanism, and

    in
    > consequence fails to start the Operating System.=20
    >=20
    > The BIOS seeks to validate the contents of the MBR and the boot sector
    > in the active partition to achieve confidence in the integrity of the
    > boot mechanism. At various points on the start-up sequence the BIOS
    > reads the MBR from disk and tests the data therein. In at least one
    > case, the BIOS sets out to test all 4 entries in the MBR partition

    table
    > but due to treating an absolute pointer as one relative to the start

    of
    > the MBR, it drops out of the loop after the first iteration. Slots 2,

    3
    > and 4 are never examined and the active partition not found.
    > Specifically, the 512 byte MBR end-of-table is tested by comparing the
    > pointer to see if it has reached end-of-table at 510 bytes.
    > Unfortunately, in the ACPI version the pointer is set to MBR-start

    plus
    > start-of-table within MBR. Therefore, the pointer begins with a value
    > larger than the size of the MBR. The result is that the first slot
    > fails, when testing for the active partition byte, the test will show

    an
    > end-of-table result: the subsequent slots are ignored.
    >=20
    > An example of the problem is shown when the MBR is read into boot
    > address 0000:7C00h and then tested for an active partition.
    >=20
    > xor bx, bx ;zero BX
    >=20
    > mov es, bx
    >=20
    > mov bx, 7C00h ;buffer address ES:BX set to 0000:7C00h
    >=20
    > mov cx, 1 ;set sector and cylinder value
    >=20
    > xor dh, dh ;and head value to read cylinder 0, head 0, sector 1
    >=20
    > mov dl, 80h ;set first hard disk drive
    >=20
    > mov ax, 0201h ;set read 1 sector
    >=20
    > int 13h ;call BIOS routine to read MBR and assume success
    >=20
    > add bx, 446 ;ES:BX point to start of partition table in MBR (BX =

    =3D
    > 7DBEh)
    >=20
    > NextSl
    >=20
    > cmp es:[bx], 80h ;is this slot bootable?
    >=20
    > je ActiveOk ;yes, drop out of loop
    >=20
    > add bx, 16 ;increment by length of slot in table=20
    > (BX becomes 7C00h+446+16)
    >=20
    > cmp bx, 510 ;end of slot table reached? error!=20
    > should be cmp bx, 7C00h + 510
    >=20
    > jb NextSlot ;no, look at next entry - branch never taken
    >=20
    > stc ;set no active partition found status
    >=20
    > ret
    >=20
    > ActiveOk:
    >=20
    > clc ;set active partition found status
    >=20
    > ret
    >=20
    > Impact:
    >=20
    > The system will not boot. Standard analysis tools will not identify

    the
    > contents of the MBR partition as invalid. Unless the help-desk

    engineer
    > is aware of this BIOS error, he/she will be unable to diagnose the
    > fault. Therefore, the impact is denial of service: the system will not
    > boot and yet there is nothing wrong with the contents of the hard

    disk.
    >=20
    > Exploit:
    >=20
    > The error in the BIOS code means that any workstation using this

    version
    > of the BIOS, can be configured such that the bootable partition is
    > defined below the first slot in the MBR partition table and will not
    > boot. An attack at any time during an operating session can leave the
    > workstation subsequently unable to reboot. The nature of the fault

    means
    > that it is very difficult to identify and may leave the workstation
    > inoperable for an extended period of time.
    >=20
    > Vendor Notified:
    >=20
    > Toshiba were notified initially by email, as no response was received
    > this was followed up by telephone on Friday 4-Feb-2005 and again on
    > Wednesday 23-Feb-2005.
    >=20
    > Vendor Response:
    >=20
    > The A60 laptop works with their supplied configuration. Fault not
    > recognised. Reference supplied by Toshiba is 1-585 92244. When the

    fault
    > was reported again on 23-Feb-2005 a new fault reference was supplied
    > 1-165 162202 but no technical response was provided by Toshiba.
    >=20
    > Workaround/Fix
    >=20
    > Either, the BIOS code must be corrected by the manufacturer, or a
    > monitoring device installed to detect any re-configuration that would
    > exploit the vulnerability. Validating and correcting the contents of

    the
    > MBR at system shutdown is a minimum requirement in these

    circumstances.=20
    >=20
    > Copyright:=20
    >=20
    > Copyright (c) Portcullis Computer Security Limited 2005. All rights
    > reserved worldwide.
    >=20
    >=20
    >=20
    > ************************************************** ***********
    > The information in this email is confidential and may be
    > legally privileged. It is intended solely for the addressee.
    > Any opinions expressed are those of the individual and do not
    > represent the opinion of the organisation.=20
    > Access to this email by persons other than the intended
    > recipient is strictly prohibited.
    > If you are not the intended recipient, any disclosure, copying,
    > distribution or other action taken or omitted to be taken in
    > reliance on it, is prohibited and may be unlawful.=20
    > When addressed to our clients any opinions or advice contained
    > in this email is subject to the terms and conditions expressed
    > in the applicable Portcullis Computer Security Limited terms
    > of business.
    > ************************************************** ************
    >=20
    >=20



    =20

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics